首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MongoDB中计算两次之间的差异

问在MongoDB中计算两次之间的差异
EN

Stack Overflow用户
提问于 2016-04-13 14:31:52
回答 1查看 2.5K关注 0票数 0

我有一个名为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日期,但它不起作用。有没有像甲骨文一样简单的方法来找出答案。

如有任何帮助,我将不胜感激。

谢谢,公羊

EN

回答 1

Stack Overflow用户

发布于 2016-04-14 13:07:59

我不太确定您打算如何运行shell脚本,但在mongo shell中可以按照您的要求解析日期(使用Javascript)并计算两个日期之间的时间。假设我们在things数据库中有一个文档,如下所示:

代码语言:javascript
复制
{
    "_id" : ObjectId("570f1e528163383227ace761"),
    "lastModifiedAt" : "2016/04/12 20:24:18"
}

我们可以运行以下脚本来获取文档的lastModifiedDate与硬编码日期(如2016/04/12 16:24:18 )之间的差异

代码语言:javascript
复制
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});
});

这将导致:

代码语言:javascript
复制
{
    "_id" : ObjectId("570f1e528163383227ace761"),
    "lastModifiedAt" : "2016/04/12 20:24:18",
    "dateDiff" : 14400000
}

其中dateDiff是毫秒和14400000 milliseconds = 4 hours。

如果你提供更多关于你计划如何打这个电话的信息,以及第二个日期来自哪里,我很乐意在这个答案上进行扩展。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36590351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档