该 $dateAdd
运算符将指定的时间单位数添加到日期。 在需要基于给定日期和时间间隔计算未来日期的情况下,它非常有用。
语法
$dateAdd: {
startDate: <expression>,
unit: <string>,
amount: <number>,
timezone: <string> // Optional
}
参数
说明 | |
---|---|
startDate |
添加作的开始日期。 |
unit |
要添加的时间单位。 有效单位包括:year 、、、quarter 、month week day 、hour minute 、。 second millisecond |
amount |
要添加的单位数。 |
timezone |
可选。 用于作的时区。 |
例子
示例 1:向日期添加天数
db.collection.aggregate([
{
$project: {
eventName: 1,
newEndDate: {
$dateAdd: {
startDate: {
$dateFromParts: {
year: "$promotionEvents.promotionalDates.endDate.Year",
month: "$promotionEvents.promotionalDates.endDate.Month",
day: "$promotionEvents.promotionalDates.endDate.Day"
}
},
unit: "day",
amount: 7
}
}
}
}
])
示例 2:将月份添加到日期
db.collection.aggregate([
{
$project: {
eventName: 1,
newStartDate: {
$dateAdd: {
startDate: {
$dateFromParts: {
year: "$promotionEvents.promotionalDates.startDate.Year",
month: "$promotionEvents.promotionalDates.startDate.Month",
day: "$promotionEvents.promotionalDates.startDate.Day"
}
},
unit: "month",
amount: 1
}
}
}
}
])