我有一个名为Last Modified At的字段,值类似于'2016/04/12 20:24:18‘。它不是一个国际标准化组织日期,而是一个通过MongoDb中的java进程存储的普通字符串值。我正在尝试写一个shell脚本来计算'2016/04/12 20:24:18‘和'2016/04/12 16:24:18’之间的差异。差异可以是天、小时、分钟或秒。我尝试了几件事,包括转换为ISO日期,但它不起作用。有没有像甲骨文一样简单的方法来找出答案。
如有任何帮助,我将不胜感激。
谢谢,公羊
发布于 2016-04-14 13:07:59
我不太确定您打算如何运行shell脚本,但在mongo shell中可以按照您的要求解析日期(使用Javascript)并计算两个日期之间的时间。假设我们在things数据库中有一个文档,如下所示:
{
"_id" : ObjectId("570f1e528163383227ace761"),
"lastModifiedAt" : "2016/04/12 20:24:18"
}我们可以运行以下脚本来获取文档的lastModifiedDate与硬编码日期(如2016/04/12 16:24:18 )之间的差异
db.things.find({}).forEach(function(thing) {
var date1 = new Date(thing.lastModifiedAt);
var date2 = new Date('2016/04/12 16:24:18');
var dateDiff = date1.getTime() - date2.getTime();
printjson({_id:thing._id,lastModifiedAt:thing.lastModifiedAt,dateDiff:dateDiff});
});这将导致:
{
"_id" : ObjectId("570f1e528163383227ace761"),
"lastModifiedAt" : "2016/04/12 20:24:18",
"dateDiff" : 14400000
}其中dateDiff是毫秒和14400000 milliseconds = 4 hours。
如果你提供更多关于你计划如何打这个电话的信息,以及第二个日期来自哪里,我很乐意在这个答案上进行扩展。
https://stackoverflow.com/questions/36590351
复制相似问题