mysql与mongodb时间差区别

需求描述:遇到mongodb 求记录中  计算两时间(ISODate)差值并求和,故对比mysql 里面的TIMESTAMPDIFF做个记录(ps:写此篇,主要原因是在百度3min中内没解决得意

mysql  :demo如图

SELECT START_TIME,END_TIME FROM alarm_info WHERE ALARM_SEQ=292 OR ALARM_SEQ=291
UNION ALL
SELECT "sum开始结束时间(s)",SUM(TIMESTAMPDIFF(SECOND,START_TIME,END_TIME)) coun FROM alarm_info WHERE ALARM_SEQ=292 OR ALARM_SEQ=291


2: mongodb 代码如下

#聚合查询单根桩在线总时长,上下线次数
db.getCollection('LogAndOutMerge2').aggregate([
                         { $match : {stakeId:NumberLong("6410")}}
                        ,{$project: {_id:'$stakeId', duration : {$subtract : ['$endTime', '$startTime']}}}
                        ,{ $group: { _id : "$stakeId", onlineTime: { $sum:{ $multiply: ["$duration"] } },loginOutCnt: { $sum: 1 }} }
                  ])

mongod 通过聚合,用于过滤数据,将集合中的文档分组的方式,进行将多条记录时间差并求和

ps:参考https://stackoverflow.com/questions/41138877/how-to-calculate-timestamp-difference-in-mongodb-in-hours

官方文档:https://docs.mongodb.com/manual/reference/operator/aggregation/subtract/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值