• 日期和时间函数
请注意,CURTIME()
、UTC_TIME()
、UTC_TIMESTAMP()
和 TIMEDIFF()
可以通过使用任意转换函数(例如 BIGINT()
、DOUBLE()
等)提升为数值类型。
NOW()
返回当前整数时间戳。
CURTIME()
以 hh:ii:ss
格式返回本地时区的当前时间。
CURDATE()
以 YYYY-MM-DD
格式返回本地时区的当前日期。
UTC_TIME()
以 hh:ii:ss
格式返回 UTC 时区的当前时间。
UTC_TIMESTAMP()
以 YYYY-MM-DD hh:ii:ss
格式返回 UTC 时区的当前时间。
SECOND()
根据当前时区从时间戳参数中返回秒数整数(范围 0..59)。
MINUTE()
根据当前时区从时间戳参数中返回分钟整数(范围 0..59)。
HOUR()
根据当前时区从时间戳参数中返回小时整数(范围 0..23)。
DAY()
根据当前时区从时间戳参数中返回日期整数(范围 1..31)。
MONTH()
根据当前时区从时间戳参数中返回月份整数(范围 1..12)。
QUARTER()
返回时间戳参数中的年份季度整数(范围 1..4),根据当前时区。
YEAR()
返回时间戳参数中的年份整数(范围 1969..2038),根据当前时区。
DAYNAME()
返回给定时间戳参数的星期几名称,根据当前时区。
MONTHNAME()
返回给定时间戳参数的月份名称,根据当前时区。
DAYOFWEEK()
返回给定时间戳参数的星期几整数索引(范围 1..7),根据当前时区。请注意,星期从周日开始。
DAYOFYEAR()
返回给定时间戳参数的年度天数整数(范围 1..366),根据当前时区。
YEARWEEK()
返回给定时间戳参数的整数年份和当前周的第一天代码(范围 1969001..2038366),根据当前时区。
YEARMONTH()
返回时间戳参数中的年份和月份代码整数(范围 196912..203801),根据当前时区。
YEARMONTHDAY()
返回基于当前时区的年份、月份和日期代码整数(范围 19691231 到 20380119)。
TIMEDIFF()
计算两个时间戳之间的差异,格式为 hh:ii:ss
。
DATEDIFF()
计算两个时间戳之间的天数差异。
DATE()
将时间戳参数中的日期部分格式化为 YYYY-MM-DD
字符串。
TIME()
将时间戳参数中的时间部分格式化为 HH:MM:SS
字符串。
DATE_FORMAT()
根据提供的日期和格式参数返回格式化的字符串。格式参数使用与 strftime 函数相同的说明符。为了方便,以下是一些常用的格式说明符:
%Y
- 四位数年份%m
- 两位数月份(01-12)%d
- 两位数日期(01-31)%H
- 两位数小时(00-23)%M
- 两位数分钟(00-59)%S
- 两位数秒(00-59)%T
- 24小时制时间(%H:%M:%S
)
请注意,这不是说明符的完整列表。请查阅您的操作系统 strftime()
的文档以获取完整列表。
此示例格式化当前日期和时间,显示四位数年份和 24 小时制时间。
DATE_HISTOGRAM()
DATE_HISTOGRAM(expr, {calendar_interval='unit_name'})
使用单位名称作为桶大小并返回该值的桶号。值会被舍入到最接近的桶。关键函数为:
间隔使用单位名称指定,如 week
或 1M
。不支持多个单位组合(如 2w
)。
有效的间隔有:
minute
,1m
hour
,1h
day
,1d
week
,1w
month
,1M
year
,1y
用于聚合、FACET
和分组。
示例:
DATE_RANGE()
DATE_RANGE(expr, {range_from='date_math', range_to='date_math'})
接受一组范围并返回该值的桶号。表达式包括 range_from
值并排除 range_to
值。范围可以是开放的 - 仅包含 range_from
或仅包含 range_to
值。与 RANGE() 函数的不同之处在于,range_from
和 range_to
值可以用 Date math 表达式表示。
用于聚合、FACET
和分组。
示例
日期数学
日期数学允许您在搜索中直接处理日期和时间。它对于处理随时间变化的数据尤其有用。通过日期数学,您可以轻松执行以下操作:查找特定时期的条目、分析数据趋势或管理何时删除信息。它通过让您能够在给定日期上加减时间、将日期舍入到最近的时间单位等方式,简化了日期的处理,这些操作都可以在您的搜索查询中进行。
要使用日期数学,您可以从一个基准日期开始,它可以是:
now
代表当前日期和时间,或者以
||
结尾的特定日期字符串。
然后,您可以使用以下操作来修改此日期:
+1y
表示增加一年,-1h
表示减少一小时,/m
表示舍入到最近的月份。
在这些操作中,您可以使用以下时间单位:
s
代表秒,m
代表分钟,h
(或H
)代表小时,d
代表天,w
代表周,M
代表月,y
代表年。
以下是一些日期数学的使用示例:
now+4h
表示从现在起四小时后。now-2d/d
表示两天前的时间,并舍入到最近的一天。2010-04-20||+2M/d
表示 2010 年 6 月 20 日,并舍入到最近的一天。
最后更新于