fuz*_*eto 5 datediff elasticsearch
我正在使用ES,我需要一个返回两个日期时间(mysql timediff)之间差异的查询,但是没有找到ES的任何功能来执行此操作.有人可以帮帮我吗?
MySQL查询
SELECT SEC_TO_TIME(
AVG(
TIME_TO_SEC(
TIMEDIFF(r.acctstoptime,r.acctstarttime)
)
)
) as average_access
FROM radacct
Run Code Online (Sandbox Code Playgroud)
谢谢!
你最好的是脚本字段.如果您已启用动态脚本并且这些日期字段在映射中定义为日期,则上述搜索查询应该有效.
{
"script_fields": {
"test1": {
"script": "doc['acctstoptime'].value - doc['acctstarttime'].value"
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,您将获得epoch中的结果,您需要将其转换为您的面额.
这是使用脚本字段的另一个示例。它将日期转换为自纪元以来的毫秒数,将两者相减并将结果转换为两个日期之间的天数。
{
"query": {
"bool": {
"must": [
{
"exists": {
"field": "priorTransactionDate"
}
},
{
"script": {
"script": "(doc['transactionDate'].date.millis - doc['priorTransactionDate'].date.millis)/1000/86400 < 365"
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11035 次 |
| 最近记录: |