MongoDb:在mongodb 3.6中将日期字符串转换为特定格式 [英] MongoDb: Convert date string to specific format in mongodb 3.6
本文介绍了MongoDb:在mongodb 3.6中将日期字符串转换为特定格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在不使用dateFromString运算符中的格式字段的情况下将日期值解析为特定格式.
I need to parse date value to specific format without using format field in dateFromString operator.
当前情况: 在Mongodb 4.0中,如果我使用下面的代码格式化dateString,它会给我提到的输出.
Current situation : in Mongodb 4.0 if I format dateString using below it code it give me mentioned output.
parsedDate: {
$dateFromString: {
dateString: "$dateS",
format: format: "%Y-%m-%dT%H"
}
}
Output: "parsedDate": ISODate("2020-01-16T08:00:00Z")
由于不支持3.6中的格式字段,因此无法使用.
如何将日期转换为
format: "%Y-%m-%dT%H"
在3.6中?
I cannot use format field in 3.6 since its not supported.
How do I convert my date to
format: "%Y-%m-%dT%H"
in 3.6?
推荐答案
我认为以下查询将解决您的问题,因为MongoDB 3.6支持 dateFromString
I think following query will solve your problem because MongoDB 3.6 supports dateFromString
输入:
[
{
"dateS": "2020-01-16T08"
}
]
查询:
db.collection.aggregate([
{
"$project": {
"year": {"$substr": ["$dateS",0,4]},
"month": {"$substr": ["$dateS",5,2]},
"day": {"$substr": ["$dateS",8,2]},
"hour": {"$substr": ["$dateS",11,2]}
}
},
{
$addFields: {
"isoString": {
"$concat": ["$year","-","$month","-","$day","T","$hour",":00:00Z"]
}
}
},
{
$addFields: {
"newDate": {
$dateFromString: {"dateString": "$isoString"}
}
}
}
])
输出:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"day": "16",
"hour": "08",
"isoString": "2020-01-16T08:00:00Z",
"month": "01",
"newDate": ISODate("2020-01-16T08:00:00Z"),
"year": "2020"
}
]
这篇关于MongoDb:在mongodb 3.6中将日期字符串转换为特定格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文