日期和时间函数
本文介绍日期、时间函数的语法规则,包括参数解释、函数示例等。管道符特性处理的日期和时间为timestamp类型,返回值格式表现为yyyy-MM-dd HH:mm:ss.SSS TimeZone。
函数列表
函数 |
描述 |
---|---|
返回当前日期和时间,格式为yyyy-MM-dd HH:mm:ss.SSS |
|
将ISO8601格式的日期表达式expr转换为date类型的日期表达式,格式为yyyy-MM-dd |
|
将ISO8601格式的日期表达式expr转换为timestamp类型的日期表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
|
将UNIX时间戳转换为日期和时间表达式。 |
|
将UNIX时间戳转换为日期和时间表达式。与mills_to_timestamp函数用法一致。 |
|
将日期类型或时间戳类型的日期时间表达式转换为ISO8601格式的日期时间表达式。 |
|
将时间戳类型的日期和时间表达式转换为UNIX时间戳。 |
|
将时间戳类型的日期和时间表达式转换为UNIX时间戳。与timestamp_to_mills函数用法一致。 |
|
将时间戳舍入,将其作为新的时间戳返回。Period可以是任何ISO8601的周期,如P3M(季度)或PT12H(半天)。指定Origin作为时间戳,以设置舍入的参考时间。例如,TIME_CEIL(time, 'PT1H', '2016-06-27 00:30:00')测量的小时周期从00:30-01:30而不是00:00-01:00。时区(如果提供)应该是时区名称,如“America/Los_Angeles”或偏移量,如“-08:00”。 |
|
向下舍入时间戳,将其作为新的时间戳返回。Period可以是任何ISO8601的周期,如P3M(季度)或PT12H(半天)。指定Origin作为时间戳,以设置舍入的参考时间。例如,TIME_FLOOR(time, 'PT1H', '2016-06-27 00:30:00')测量的小时周期从00:30-01:30而不是00:00-01:00。时区(如果提供)应该是时区名称,如“America/Los_Angeles”或偏移量,如“-08:00”。 |
|
使用时间单位对时间戳进行四舍五入,单位可以是SECOND、MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。 |
|
使用时间单位对时间戳进行向下舍入,单位可以是SECOND、MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。 |
|
将时间戳expr移动一个Period(步长时间)。Period可以是任何ISO8601的Period。 |
|
计算系统时区和utc时区的小时偏移量。如果提供了时区,则计算系统时区与给定时区的偏移量。 |
|
计算系统时区和utc时区的分钟偏移量。如果提供了时区,则计算系统时区与给定时区的偏移量。 |
|
将时间戳类型的日期和时间表达式转换为指定格式的日期和时间表达式。 |
|
将时间戳类型的日期和时间表达式转换为指定格式的日期和时间表达式。 |
|
将日期和时间字符串转换为指定格式的时间戳类型的日期和时间表达式。 |
|
将日期和时间字符串转换为指定格式的时间戳类型的日期和时间表达式。 |
|
通过指定字段提取日期时间表达式的日期或时间部分。EPOCH, SECOND, MINUTE, HOUR, DAY(月的日), DOW(周的日), DOY(年的日), WEEK(年周), MONTH(1到12), QUARTER(1到4),或YEAR,时区(如果提供)应为时区名称,如"America/Los_Angeles"或偏移量,如"-08:00" |
|
根据您指定的时间单位截断日期和时间表达式,并以毫秒、秒、分钟、小时、天、月或年为单位对齐。 |
|
返回时间戳expr1和时间戳expr2之间的单位数(有符号)。 |
|
返回当前日期,格式是“yyyy-MM-dd”。 |
|
返回当前日期和时间,格式是“yyyy-MM-dd HH:mm:ss.SSS”。功能与current_timestamp一致 |
|
给时间加上给定的时间间隔 |
|
返回当前时间,格式为HH:mm:ss.SSSSSS。 |
|
返回当前时区。 |
|
返回本地时间。 |
|
返回本地的日期和时间。 |
|
返回目标日期在ISO周日历中的年份。year_of_week函数等同于yow函数。 |
|
返回目标日期在ISO周日历中的年份。year_of_week函数等同于yow函数。 |
|
用于补全您查询时间窗口内缺失的数据。 |
current_timestamp函数
返回当前日期和时间,格式为yyyy-MM-dd HH:mm:ss.SSS。
语法:current_timestamp()
返回值类型:timestamp类型
示例:SELECT CURRENT_TIMESTAMP()
类型 |
场景 |
---|---|
查询语句 |
CURRENT_TIMESTAMP() |
返回结果 |
2023-04-17 10:48:41.286 |
from_iso8601_date函数
将ISO8601格式的日期表达式转化为date类型的日期表达式,格式为YYYY-MM-DD。
语法:from_iso8601_date(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
ISO8601格式的日期表达式 |
String |
是 |
返回值类型:String类型
示例:SELECT FROM_ISO8601_DATE('2018-05-14')
类型 |
场景 |
---|---|
查询语句 |
FROM_ISO8601_DATE('2018-05-14') |
返回结果 |
2018-05-14 |
from_iso8601_timestamp函数
将ISO8601格式的日期和时间表达式转化为timestamp类型的日期和时间表达式,格式为YYYY-MM-DD HH:MM:SS.Ms Time_zone。
语法:from_iso8601_timestamp(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
ISO8601格式的日期和时间表达式 |
String |
是 |
返回值类型:timestamp类型。
示例:SELECT FROM_ISO8601_TIMESTAMP('2018-05-14T11:51:50.153+08:00')
类型 |
场景 |
---|---|
查询语句 |
FROM_ISO8601_TIMESTAMP('2018-05-14T11:51:50.153+08:00') |
返回结果 |
2018-05-14 11:51:50.153 +08:00 |
from_unixtime函数
将秒级或毫秒级时间戳转换为日期和时间表达式。当expr取值小于时视为秒。
- 将秒级或毫秒级时间戳转化为时间戳类型的日期和时间表达式。
表9 参数说明 参数名称
描述
类型
是否必选
expr
秒级或毫秒级时间戳
Long
是
返回值类型:timestamp
示例:SELECT FROM_UNIXTIME(1626774758000)
表10 查询分析结果 类型
场景
查询语句
FROM_UNIXTIME(1626774758000)
返回结果
2021-07-20 09:52:38.000 UTC
示例:SELECT FROM_UNIXTIME(1731916857)
表11 查询分析结果 类型
场景
查询语句
FROM_UNIXTIME(1731916857)
返回结果
2024-11-18 08:00:57.000 UTC
- 将秒级或毫秒级时间戳转化为带特定时区的timestamp类型的日期和时间表达式。
语法:from_unixtime(expr, timezone)
表12 参数说明 参数名称
描述
类型
是否必选
expr
UNIX时间戳
Long
是
timezone
时区
String
是
返回值类型:String类型
示例:SELECT FROM_UNIXTIME(1626774758000, 'Asia/Shanghai')
表13 查询分析结果 类型
场景
查询语句
FROM_UNIXTIME(1626774758000, 'Asia/Shanghai')
返回结果
2021-07-20 17:52:38.000 Asia/Shanghai
- 将秒级或毫秒级时间戳转换为具有特定时区的日期和时间表达式。表达式中,hour和minute表示时区偏移量。
语法:from_unixtime(expr, hour, minutes)
表14 参数说明 参数名称
描述
类型
是否必选
expr
UNIX时间戳
Long
是
hour
小时
Integer
是
minute
分钟
Integer
是
返回值类型:String
示例:SELECT FROM_UNIXTIME(1626774758000, -2, 0)
表15 查询分析结果 类型
场景
查询语句
FROM_UNIXTIME(1626774758000, -2, 0)
返回结果
2021-07-20 07:52:38.000 -02:00
to_iso8601函数
将日期类型或时间戳类型的日期时间表达式转换为ISO8601格式的日期时间表达式。
语法:to_iso8601(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
timestamp类型的日期和时间表达式 |
timestamp类型 |
是 |
返回值类型:String类型
示例:SELECT TO_ISO8601(from_unixtime(1626774758000))
类型 |
场景 |
---|---|
查询语句 |
TO_ISO8601(FROM_UNIXTIME(1626774758000)) |
返回结果 |
2021-07-20T09:52:38.000Z |
timestamp_to_mills函数
将timestamp类型的日期和时间表达式转换为毫秒级的时间戳。
语法:timestamp_to_mills(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
timestamp类型的日期和时间表达式 |
timestamp类型 |
是 |
返回值类型:Long类型
示例:select timestamp_to_mills(from_unixtime(1626774758000))
类型 |
场景 |
---|---|
查询语句 |
timestamp_to_mills(from_unixtime(1626774758000)) |
返回结果 |
1681287322285 |
to_unixtime函数
将timestamp类型的日期和时间表达式转换毫秒级的时间戳。
语法:to_unixtime(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
timestamp类型的日期和时间表达式 |
timestamp |
是 |
返回值类型:Long类型
示例:SELECT to_unixtime(from_unixtime(1626774758000))
类型 |
场景 |
---|---|
查询语句 |
to_unixtime(from_unixtime(1626774758000)) |
返回结果 |
1626774758 |
time_ceil函数
将timestamp类型的时间戳按固定周期以四舍五入的方式取整,将其作为新的时间戳返回。Period可以是任何ISO8601的周期,如P3M(季度)或PT12H(半天)。
time_ceil(expr, period)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone |
timestamp |
是 |
period |
ISO8601的周期 |
String |
是 |
返回值类型:timestamp类型
示例1:SELECT TIME_CEIL(from_unixtime(1731930422292), 'PT2H')
类型 |
场景 |
---|---|
查询语句 |
TIME_CEIL('2023-04-23 06:46:40.000', 'PT2H') |
返回结果 |
2024-11-18 20:00:00.000 Asia/Shanghai |
Period描述:period的格式应为P[n]Y[n]M[n]DT[n]H[n]M[n]S或P[n]W。在这些表示中,【n】是日期和时间元素的数量。不需要前导零,但每个元素的最大位数应由通信各方商定。大写字母P、Y、M、W、D、T、H、M和S是每个日期和时间元素的指示符,不被替换。
- P是放置在持续时间表示的开始处的持续时间指示符(对于期间)。
- Y是日历年数值之后的年指示符。
- M是日历月数值之后的月份指示符。
- W是周数值之后的周指示符。
- D是日历天数值之后的日期指示符。
- T是表示的时间分量之前的时间指示符。
- H是小时数值之后的小时指示符。
- M是分钟指示符,紧随分钟数的值。
- S是秒数值之后的第二个指示符。
例如,“P3Y6M4DT12H30M5S”表示“三年六个月四天十二小时三十分五秒”的持续时间。
更多信息,请访问https://en.wikipedia.org/wiki/ISO_8601
time_floor函数
将timestamp类型的时间戳按时间戳返回。Period可以是任何ISO8601的周期,如P3M(季度)或PT12H(半天)。
语法:time_floor(expr, period)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone |
timestamp |
是 |
period |
ISO8601的周期 |
String |
是 |
返回值类型:timestamp类型
示例1:SELECT TIME_FLOOR(from_unixtime(1626774758000), 'PT2H')
类型 |
场景 |
---|---|
查询语句 |
TIME_FLOOR(from_unixtime(1626774758000), 'PT2H') |
返回结果 |
2021-07-20 16:00:00.000 Asia/Shanghai |
ceil函数
使用时间单位对时间戳进行四舍五入,单位可以是SECOND、MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。
语法:ceil(expr, unit)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
timestamp |
是 |
unit |
时间单位 |
String |
是 |
返回值类型:String类型
示例:SELECT CEIL('2023-04-20 11:28:31.770', 'DAY')
类型 |
场景 |
---|---|
查询语句 |
CEIL ('2023-04-20 11:28:31.770', 'DAY') |
返回结果 |
2023-04-21 00:00:00.000 |
floor函数
使用时间单位对时间戳进行向下舍入,单位可以是SECOND、MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。
语法:floor(expr, unit)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
timestamp |
是 |
unit |
时间单位 |
String |
是 |
返回值类型:Strin类型
示例:SELECT FLOOR('2023-04-20 11:28:31.770', 'DAY')
类型 |
场景 |
---|---|
查询语句 |
FLOOR('2023-04-20 11:28:31.770', 'DAY') |
返回结果 |
2023-04-20 00:00:00.000 |
time_shift函数
将时间戳expr移动一个Period(步长时间)。Period可以是任何ISO8601的Period。
语法:time_shift(expr, period, step, [timezone])
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone |
timestamp |
是 |
period |
ISO8601的周期 |
String |
是 |
step |
步长 |
Integer |
是 |
timezone |
时区 |
String |
否 |
返回值类型:String类型
示例:SELECT TIME_SHIFT( from_unixtime(__time), 'P1D', 5), TIME_SHIFT( from_unixtime(__time), 'P1D', 5,'+08:00')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
TIME_SHIFT( from_unixtime(__time), 'P1D', 5) |
TIME_SHIFT( from_unixtime(__time), 'P1D', 5,'+08:00') |
返回结果 |
2024-11-23 21:58:59.907 Asia/Shanghai |
2024-11-23 21:58:59.907 +08:00 |
timezone_hour函数
计算时区的小时偏移量。
语法:timezone_hour(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TIMEZONE |
timestamp |
否 |
返回值类型:Integer类型
示例:SELECT TIMEZONE_HOUR('2023-04-22 15:31:30.000 Europe/Rome')
类型 |
场景 |
---|---|
查询语句 |
TIMEZONE_HOUR(from_unixtime(__time,'Europe/Rome')) |
返回结果 |
1 |
timezone_minute函数
计算时区的分钟偏移量。
语法:timezone_minute(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TIMEZONE |
timestamp |
否 |
返回值类型:Integer类型
示例:SELECT TIMEZONE_MINUTE(from_unixtime(__time))
类型 |
场景 |
---|---|
查询语句 |
TIMEZONE_MINUTE(from_unixtime(__time)) |
返回结果 |
0 |
time_format函数
将毫秒级的时间戳或timestamp类型的日期和时间表达式expr,依据用户自定义的format参数以 Joda DateTimeFormat模式转换为指定日期和时间格式的字符串。
语法:time_format(expr, format)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
timestamp类型类型的日期和时间表达式或毫秒级的时间戳 |
timestamp或Long |
是 |
format |
时间格式。 |
String |
是 |
返回值类型:String类型
示例:SELECT TIME_FORMAT(__time, 'yyyy-MM-dd HH:mm:ss'), TIME_FORMAT(from_unixtime(__time), 'yyyy-MM-dd HH:mm:ss')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
TIME_FORMAT(__time, 'yyyy-MM-dd HH:mm:ss') |
TIME_FORMAT(from_unixtime(__time), 'yyyy-MM-dd HH:mm:ss') |
返回结果 |
2024-11-18 22:15:16 |
2024-11-18 22:15:16 |
time_parse函数
time_parse将给定的字符串expr,依据用户自定义的format参数以 Joda DateTimeFormat模式解析为timestamp类型类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone。若<format>未填写则以默认的ISO8601将字符串解析。
语法:time_parse(expr, format)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
某种时间格式的字符串。 |
String |
是 |
format |
时间格式。 |
String |
是 |
返回值类型:timestamp类型的时间和日志表达式
__time |
场景 |
---|---|
查询语句 |
TIME_PARSE('2024-11-18 22:15:11', 'yyyy-MM-dd HH:mm:ss') |
返回结果 |
2024-11-18 22:15:11.000 Asia/Shanghai |
format描述:
Symbol Meaning Presentation Examples
------ ------- ------------ -------
G era text AD
C century of era (>=0) number 20
Y year of era (>=0) year 1996
x weekyear year 1996
w week of weekyear number 27
e day of week number 2
E day of week text Tuesday; Tue
y year year 1996
D day of year number 189
M month of year month July; Jul; 07
d day of month number 10
a halfday of day text PM
K hour of halfday (0~11) number 0
h clockhour of halfday (1~12) number 12
H hour of day (0~23) number 0
k clockhour of day (1~24) number 24
m minute of hour number 30
s second of minute number 55
S fraction of second millis 978
z time zone text Pacific Standard Time; PST
Z time zone offset/id zone -0800; -08:00; America/Los_Angeles
' escape for text delimiter
'' single quote literal '
date_format函数
timestamp类型类型的日期和时间表达式转换为指定日期和时间格式的字符串。
语法:date_format(expr, format)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
timestamp类型类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone |
timestamp |
是 |
format |
时间格式 |
String |
是 |
返回值类型:String类型
示例:SELECT DATE_FORMAT(current_timestamp(),'%H%i')
类型 |
场景 |
---|---|
查询语句 |
DATE_FORMAT(current_timestamp(),'%H%i') |
返回结果 |
1432 |
format描述:
%a Abbreviation for the week. For example, Sun and Sat.
%b Abbreviation of the month. For example, Jan and Dec.
%c Month. Numeral type. Range: 1-12.
%D Day of the month. The value must be suffixed, for example, 0th, 1st, 2nd, and 3rd.
%d Day of the month. The value ranges from 01 to 31 in decimal notation.
%e Day of the month. The value ranges from 1 to 31 in decimal notation.
%H Hour, 24-hour system.
%h Hour, 12-hour system.
%i Minute. Numeral type. Range: 00–59.
%j Day of the year. The value ranges from 001 to 366.
%k Hour. The value ranges from 0 to 23.
%l Hour. The value ranges from 1 to 12.
%M The English expression of the month, for example, January, December.
%m Month. Numeral format. The value ranges from 01 to 12.
%p AM and PM.
%r Time in the 12-hour format. The format is hh:mm:ss AM/PM.
%S Indicates the second. The value ranges from 00 to 59.
%s Indicates the second. The value ranges from 00 to 59.
%T Time, in the 24-hour format of hh:mm:ss.
%v The first week of the year, Monday is the first day of the week. The value ranges from 01 to 53.
%W The name of the day of the week. For example, Sunday and Saturday.
%w Day of the week. Sunday is day 0.
%Y A 4-digit year, for example, 2020.
%y A 2-digit year, for example, 20.
%% Escape character for%.
date_parse函数
将日期和时间字符串转换为指定格式的时间戳类型的日期和时间表达式。
语法:date_parse(expr, pattern)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式。 |
String |
是 |
pattern |
日期和时间表达式的转换格式 |
String |
是 |
返回值类型:timestamp类型类型的日期和时间表达式。
示例:SELECT DATE_PARSE('2024-11-18 10:53','%Y-%m-%d %h:%i')
类型 |
场景 |
---|---|
查询语句 |
DATE_PARSE('2024-11-18 10:53','%Y-%m-%d %h:%i') |
返回结果 |
2024-11-18 10:53:00.000 |
pattern在设置时,如果设置了分钟,那么就必须同时配置分钟之前的年、月、日和时。
time_extract函数
通过指定字段提取日期时间表达式的日期或时间部分。EPOCH, SECOND, MINUTE, HOUR, DAY(月的日), DOW(周的日), DOY(年的日), WEEK(年周), MONTH(1到12), QUARTER(1到4),或YEAR,时区(如果提供)应为时区名称,如"America/Los_Angeles"或偏移量,如"-08:00"
语法:time_extract(expr, unit)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
是 |
unit |
时间单位 |
String |
是 |
返回值类型:Long类型
示例:SELECT TIME_EXTRACT('2023-05-05','YEAR')
类型 |
场景 |
---|---|
查询语句 |
TIME_EXTRACT('2023-05-05','YEAR') |
返回结果 |
2023 |
date_trunc函数
根据您指定的时间单位截断日期和时间表达式,并以毫秒、秒、分钟、小时、天、月或年为单位对齐。
语法:date_trunc(unit, expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone |
timestamp |
是 |
unit |
时间单位 |
String |
是 |
返回值类型:Long类型
示例:SELECT DATE_TRUNC('year', from_unixtime(__time))
类型 |
场景 |
---|---|
查询语句 |
DATE_TRUNC('year', from_unixtime(__time)) |
返回结果 |
2024-01-01 00:00:00.000 Asia/Shanghai |
date_diff函数
返回时间戳expr1和时间戳expr2之间的单位数(有符号)。
语法:date_diff(unit, expr1, expr2)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr1 |
timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone |
timestamp |
是 |
expr2 |
timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone |
timestamp |
|
unit |
时间单位 |
String |
是 |
返回值类型:Long类型
示例:SELECT DATE_DIFF('SECOND', CURRENT_TIMESTAMP() ,from_unixtime(__time))
类型 |
场景 |
---|---|
查询语句 |
DATE_DIFF('SECOND', CURRENT_TIMESTAMP() ,from_unixtime(__time)) |
返回结果 |
-899.00 |
current_date函数
返回当前日期,格式是“yyyy-MM-dd”。
语法:current_date()
返回值类型:String类型
示例:SELECT CURRENT_DATE()
类型 |
场景 |
---|---|
查询语句 |
CURRENT_DATE() |
返回结果 |
2023-04-17 |
now函数
返回当前日期和时间。功能与current_timestamp一致
语法:now()
返回值类型:timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone
示例:SELECT NOW()
类型 |
场景 |
---|---|
查询语句 |
NOW() |
返回结果 |
2024-11-18 23:29:18.434 Asia/Shanghai |
date_add函数
给时间加上给定的时间间隔。
语法:date_add(unit, n, expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
unit |
时间单位,取值为millisecond、second、minute、hour、day、week、month、quarter、year |
String |
是 |
n |
时间间隔 |
Long |
是 |
expr |
timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone |
timestamp |
是 |
返回值类型:timestamp
示例:SELECT DATE_ADD('MINUTE', 7, from_unixtime(__time))
类型 |
场景 |
---|---|
查询语句 |
DATE_ADD('MINUTE', 7, from_unixtime(__time)) |
返回结果 |
2024-11-18 23:23:47.407 Asia/Shanghai |
current_time函数
返回当前时间,格式为HH:mm:ss.SSSSSS。
语法:current_time()
返回值类型:String类型
示例:SELECT CURRENT_TIME()
类型 |
场景 |
---|---|
查询语句 |
CURRENT_TIME () |
返回结果 |
23:38:18.491+08:00 |
current_timezone函数
返回当前时区。
语法:current_timezone()
返回值类型:String类型
示例:SELECT CURRENT_TIMEZONE()
类型 |
场景 |
---|---|
查询语句 |
CURRENT_TIMEZONE () |
返回结果 |
Asia/Shanghai |
localtime函数
返回本地时间。
语法:localtime()
返回值类型:String类型
示例:SELECT LOCALTIME()
类型 |
场景 |
---|---|
查询语句 |
LOCALTIME() |
返回结果 |
23:38:51.346 |
localtimestamp函数
返回本地的日期和时间。
语法:localtimestamp
返回值类型:String类型
示例:SELECT LOCALTIMESTAMP
类型 |
场景 |
---|---|
查询语句 |
LOCALTIMESTAMP |
返回结果 |
2024-11-18 23:39:17.070 |
year_of_week函数
返回目标日期在ISO周日历中的年份。year_of_week函数等同于yow函数。
语法:year_of_week(expr)
参数说明:
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS或yyyy-MM-dd |
String |
是 |
返回值类型:Integer类型
示例:SELECT YEAR_OF_WEEK('2023-09-22 14:47:59.325'), YEAR_OF_WEEK('2023-09-22')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
YEAR_OF_WEEK('2023-09-22 14:47:59.325') |
YEAR_OF_WEEK('2023-09-22') |
返回结果 |
2023 |
2023 |
参数说明:
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone |
timestamp |
是 |
返回值类型:Integer
示例:SELECT YEAR_OF_WEEK(from_unixtime(__time))
类型 |
场景 |
---|---|
查询语句 |
YEAR_OF_WEEK(from_unixtime(__time)) |
返回结果 |
2024 |
yow函数
返回目标日期在ISO周日历中的年份。year_of_week函数等同于yow函数。
语法:yow(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS或yyyy-MM-dd |
String |
是 |
返回值类型:Integer类型
示例:SELECT YOW('2023-09-22 14:47:59.325'), YOW('2023-09-22')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
YOW('2023-09-22 14:47:59.325') |
YOW('2023-09-22') |
返回结果 |
2023 |
2023 |
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS或yyyy-MM-dd |
String |
是 |
返回值类型:Integer类型
示例:SELECT YOW(from_unixtime(__time))
类型 |
场景 |
---|---|
查询语句 |
YOW(from_unixtime(__time)) |
返回结果 |
2024 |
time_series函数
用于补全您查询时间窗口内缺失的数据。time_series函数必须搭配GROUP BY语法和ORDER BY语法使用。
语法:time_series(x, window_time, format, padding_data)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
x |
原始字段。 |
long或timestamap |
是 |
window_time |
窗口大小,单位为s(秒)、m(分)、h(小时)、d(天)。例如2h、5m、3d。 |
String |
是 |
format |
返回结果的时间格式。 |
String |
是 |
padding_data |
补全的内容。包括:0:将缺失的值设置为0。null:将缺失的值设置为null。last:将缺失的值设置了上一个时间点对应的值。next:将缺失的值设置了下一个时间点对应的值。avg:将缺失的值设置为前后两个时间点的平均值。 |
String |
是 |
返回值类型:String
示例:select time_series(__time, '1d', 'HH:mm:ss','0') as time, count(*) as count group by time order by time asc
类型 |
场景 |
---|---|
查询语句 |
time_series(__time, '1d', 'HH:mm:ss','0') as time, count(*) as count group by time order by time asc |
返回结果 |
|