Elasticsearch中时间可以表示为now, 也就是系统当前时间, 也可以是以||结尾的日期字符串表示
在日期之后, 可以选择一个或多个数学表达式:
+1h —— 加1小时;
-1d —— 减1天;
/d —— 四舍五入到最近的一天
/M —— 四舍五入到最近的一个月
下面是Elasticsearch支持数学表达式的时间单位:
表达式 | 含义 |
---|---|
y | 年 |
M | 月 |
w | 星期 |
d | 天 |
h | 小时 |
H | 小时 |
m | 分钟 |
s | 秒 |
- 例如: 系统当前时间now = 2020-04-07 12:00:00
now+1h: + 1小时, 结果是: 2020-04-07 13:00:00.
now-1h: - 1小时, 结果是: 2020-04-07 11:00:00.
now-1h/d: - 1小时, 然后四舍五入到最近的一天的起始, 结果是: 2020-04-07 00:00:00.
now+1M/d: + 1月, 再四舍五入到最近一天的起始, 结果是: 2018-05-07 00:00:00.
- 时间的四舍五入
例 now 时间:2020-04-07 12:00:00
"gt": "now/M" —— 大于日期, 需要向上舍入, 结果是2020-04-30T23:59:59.999, 也就是不包含整个4月.
"gte": "now/M" —— 大于或等于日期, 需要向下舍入, 结果是 2020-04-01, 也就是包含整个4月.
"lt": "now/M" —— 小于日期, 需要向上舍入, 结果是2020-04-01, 也就是不包含整个4月.
"lte": "now/M" —— 小于或等于日期, 需要向下舍入, 结果是2020-04-30T23:59:59.999, 也就是包含整个4月.