我正在尝试从数据库中查询大量记录,但对日期数学有点困惑。这是我的一个块的示例:
var searchParams = {
"query": {
"bool" : {
"must" : [
{ "term": { } },
{ "term": { } },
{ "range": {
"dateUTC": {
"gt": "now-7d/d",
"lt": "now/d",
"format": "basic_date_time"
}
}
}
]
}
}
};
现在,如果我想只查询今天的所有结果,我会使用 gt: now-1d/d, lt: now/d.或者我会使用 gt: now-2d/d, lt: now/d,就像有一天周围的边缘一样?我正在尝试制作的程序旨在查询从今天、昨天等的所有结果,从一天开始的那一秒到当天的午夜,我必须为此切换我的日期数学吗?
谢谢
我认为这篇文章回答得很清楚:https://discuss.elastic.co/t/several-date-math-questions/27453/3
不过要回答您的问题:
- "仅查询今天的所有结果":
gt: now/d, lt:now
- 从今天午夜到2天前午夜:
gt:now - 2d/d, lt:now/d
这里的/d 采用公式中计算的一天,并将时间调整为午夜,因此如果现在是 7 月 18 日 00:31:43,now/d
产生 7 月 18 日00:00:00