MongoDB聚合运算符:$dateDiff

$dateDiff聚合运算符返回两个日期只差。

语法

{
   
   
   $dateDiff: {
   
   
      startDate: <Expression>,
      endDate: <Expression>,
      unit: <Expression>,
      timezone: <tzExpression>,
      startOfWeek: <String>
   }
}

结束日期endDate减去开始日期startDate,返回指定时间单位unit的整数。

参数字段说明:

|字段|是否必须|描述|
|-|-|
|startDate|是|开始时间,可以是任何合法的日期、时间戳或ObjectID表达式|
|startDate|是|结束时间,可以是任何合法的日期、时间戳或ObjectID表达式|
|unit|是|时间单位,可以是结果为yearquarterweekmonthdayhourminutesecondmillisecond的表达式|
|timezone|否|执行操作的时区,<tzExpression>必须是能被解析为奥尔森时区标识符格式的字符串或UTC偏移量,如果timezone不指定,返回值显示为UTC|
|startOfWeek|否|当单位unitweek时使用,默认为星期日,可以是结果为monday (or mon)tuesday (or tue)wednesday (or wed)thursday (or thu)friday (or fri)saturday (or sat)sunday (or sun)之一的字符串表达式|

使用

没有小数单位

$dateDiff表达式返回以指定单位计算的开始日期和结束日期之间的整数差,持续时间是通过计算通过单位边界的次数来确定的,例如,相差 18 个月的两个日期将返回1年的差值,而不是1.5年。

周的开始

除非通过参数startOfWeek指定,否则一周的开始日期为周日。在指定日期的开始日期和结束日期之间开始的任何一周都会被计算在内。周计数不受日历月或日历年的限制。

时区

<timezone>字段中使用 Olson 时区标识符时,MongoDB 会应用 DST 偏移(如果适用于指定的时区)。

例如,包含以下文件的sales集合:

{
   
   
   "_id" : 1,
   "item" : "abc",
   "price" : 20,
   "quantity" : 5,
   "date" : ISODate("2017-05-20T10:24:51.303Z")
}

下面的聚合说明了 MongoDB 如何处理 Olson 时区标识符的 DST 偏移量。示例使用$hour$minute操作符返回日期字段的相应部分:

db.sales.aggregate([
{
   
   
   $project: {
   
   
      "nycHour": {
   
   
         $hour: {
   
    date: "$date", timezone: "-05:00" }
       },
       "nycMinute": {
   
   
          $minute: {
   
    date: "$date", timezone: "-05:00" }
       },
       "gmtHour": {
   
   
          $hour: {
   
    date: "$date", timezone: "GMT" }
       },
       "gmtMinute": 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

原子星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值