日期和时间函数
本文介绍日期、时间函数的语法规则,包括参数解释、函数示例等。管道符特性处理的日期和时间格式为yyyy-MM-dd HH:mm:ss.SSS。
函数列表
函数 |
描述 |
---|---|
返回当前日期和时间,格式为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”。此功能与ceil_to类似,但更灵活。 |
|
向下舍入时间戳,将其作为新的时间戳返回。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”。此功能与floor_to类似,但更灵活。 |
|
使用时间单位对时间戳进行四舍五入,单位可以是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()
返回值类型:String类型
示例: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 |
mills_to_timestamp函数
将UNIX时间戳转换为日期和时间表达式。
- 将UNIX时间戳转化为没有时区的时间戳类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS。
表7 参数说明 参数名称
描述
类型
是否必选
expr
UNIX时间戳
Long
是
返回值类型:String类型
示例:SELECT MILLS_TO_TIMESTAMP(1626774758000)
表8 查询分析结果 类型
场景
查询语句
MILLS_TO_TIMESTAMP(1626774758000)
返回结果
2021-07-20 09:52:38.000
- 将UNIX时间戳转化为带时区的timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone。
语法:mills_to_timestamp(expr, timezone)
表9 参数说明 参数名称
描述
类型
是否必选
expr
UNIX时间戳
Long
是
timezone
时区
String
是
返回值类型:String类型
示例:SELECT MILLS_TO_TIMESTAMP(1626774758000, 'Asia/Shanghai')
表10 查询分析结果 类型
场景
查询语句
MILLS_TO_TIMESTAMP(1626774758000, 'Asia/Shanghai')
返回结果
2021-07-20 17:52:38.000 Asia/Shanghai
- 将UNIX时间戳expr转换为具有时区的时间戳类型的日期和时间表达式。表达式中,hour和minute表示时区偏移量,格式为yyyy-MM-dd HH:mm:ss.SSS 时区偏移量。
语法:mills_to_timestamp(expr, hour, minutes)
表11 参数说明 参数名称
描述
类型
是否必选
expr
UNIX时间戳
Long
是
hour
小时
Integer
是
minute
分钟
Integer
是
返回值类型:String类型
示例:SELECT MILLS_TO_TIMESTAMP(1626774758000, -2, 0)
表12 查询分析结果 类型
场景
查询语句
MILLS_TO_TIMESTAMP(1626774758000, -2, 0)
返回结果
2021-07-20 07:52:38.000-02:00
from_unixtime函数
将UNIX时间戳转换为日期和时间表达式。与mills_to_timestamp函数用法一致。
- 将UNIX时间戳转化为没有时区的时间戳类型的日期和时间表达式。
表13 参数说明 参数名称
描述
类型
是否必选
expr
UNIX时间戳
Long
是
返回值类型:String
示例:SELECT FROM_UNIXTIME(1626774758000)
表14 查询分析结果 类型
场景
查询语句
FROM_UNIXTIME(1626774758000)
返回结果
2021-07-20 09:52:38.000
- 将UNIX时间戳转化为带时区的timestamp类型的日期和时间表达式。
语法:from_unixtime(expr, timezone)
表15 参数说明 参数名称
描述
类型
是否必选
expr
UNIX时间戳
Long
是
timezone
时区
String
是
返回值类型:String类型
示例:SELECT FROM_UNIXTIME(1626774758000, 'Asia/Shanghai')
表16 查询分析结果 类型
场景
查询语句
FROM_UNIXTIME(1626774758000, 'Asia/Shanghai')
返回结果
2021-07-20 17:52:38.000 Asia/Shanghai
- 将UNIX时间戳expr转换为具有时区的时间戳类型的日期和时间表达式。表达式中,hour和minute表示时区偏移量。
语法:from_unixtime(expr, hour, minutes)
表17 参数说明 参数名称
描述
类型
是否必选
expr
UNIX时间戳
Long
是
hour
小时
Integer
是
minute
分钟
Integer
是
返回值类型:String
示例:SELECT FROM_UNIXTIME(1626774758000, -2, 0)
表18 查询分析结果 类型
场景
查询语句
FROM_UNIXTIME(1626774758000, -2, 0)
返回结果
2021-07-20 07:52:38.000 -02:00
to_iso8601函数
将日期类型或时间戳类型的日期时间表达式转换为ISO8601格式的日期时间表达式。
语法:to_iso8601(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd或yyyy-MM-dd HH:mm:ss.SSS |
String类型 |
是 |
返回值类型:String类型
示例:SELECT TO_ISO8601('2023-04-15'), TO_ISO8601('2023-04-15 11:13:35.954')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
TO_ISO8601('2023-04-15') |
TO_ISO8601('2023-04-15 11:13:35.954') |
返回结果 |
2023-04-15 |
2023-04-15T11:13:35.954Z |
timestamp_to_mills函数
将时间戳类型的日期和时间表达式转换为UNIX时间戳。
语法:timestamp_to_mills(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String类型 |
是 |
返回值类型:Long类型
示例:SELECT TIMESTAMP_TO_MILLS('2023-04-12 16:15:22.285')
类型 |
场景 |
---|---|
查询语句 |
TIMESTAMP_TO_MILLS('2023-04-12 16:15:22.285') |
返回结果 |
1681287322285 |
to_unixtime函数
将时间戳类型的日期和时间表达式转换为UNIX时间戳。与timestamp_to_mills函数用法一致。
语法:to_unixtime(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
是 |
返回值类型:Long类型
示例:SELECT TO_UNIXTIME('2023-04-12 16:15:22.285')
类型 |
场景 |
---|---|
查询语句 |
TO_UNIXTIME('2023-04-12 16:15:22.285') |
返回结果 |
1681287322285 |
time_ceil函数
将时间戳舍入,将其作为新的时间戳返回。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”。此功能与ceil_to类似,但更灵活。
语法:time_ceil(expr, period, [origin, [timezone]])
origi和timezone加中括号表示可选,非必填。
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
是 |
period |
ISO8601的周期 |
String |
是 |
origin |
原始时间,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
否 |
timezone |
时区 |
String |
否 |
返回值类型:String类型
示例1:SELECT TIME_CEIL('2023-04-23 06:46:40.000', 'PT2H')
类型 |
场景 |
---|---|
查询语句 |
TIME_CEIL('2023-04-23 06:46:40.000', 'PT2H') |
返回结果 |
2023-04-23 08:00:00.000 |
示例2:SELECT TIME_CEIL('2023-04-25 06:53:45.000', 'PT2H', '2012-12-18 01:20:21.000')
类型 |
场景 |
---|---|
查询语句 |
TIME_CEIL('2023-04-25 06:53:45.000', 'PT2H', '2012-12-18 01:20:21.000') |
返回结果 |
2023-04-25 07:20:21.000 |
示例3:SELECT TIME_CEIL('2023-04-25 09:44:35.000', 'PT2H', '2012-12-18 04:11:11.000', 'Europe/Rome')
类型 |
场景 |
---|---|
查询语句 |
TIME_CEIL('2023-04-25 09:44:35.000', 'PT2H', '2012-12-18 04:11:11.000', 'Europe/Rome') |
返回结果 |
2023-04-25 10:11:11.000 |
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函数
向下舍入时间戳,将其作为新的时间戳返回。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”。此功能与floor_to类似,但更灵活。
语法:time_floor(expr, period, [origin, [timezone]])
origi和timezone加中括号表示可选,非必填。
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
是 |
period |
ISO8601的周期 |
String |
是 |
origin |
原始时间,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
否 |
timezone |
时区 |
String |
否 |
返回值类型:String类型
示例1:SELECT TIME_FLOOR('2023-04-23 06:46:40.000', 'PT2H')
类型 |
场景 |
---|---|
查询语句 |
TIME_FLOOR('2023-04-23 06:46:40.000', 'PT2H') |
返回结果 |
2023-04-23 06:00:00.000 |
示例2:SELECT TIME_FLOOR('2023-04-25 06:53:45.000', 'PT2H', '2012-12-18 01:20:21.000')
类型 |
场景 |
---|---|
查询语句 |
TIME_FLOOR('2023-04-25 06:53:45.000', 'PT2H', '2012-12-18 01:20:21.000') |
返回结果 |
2023-04-25 05:20:21.000 |
示例3:SELECT TIME_FLOOR('2023-04-23 06:46:40.000', 'PT2H', '2012-12-18 04:11:11.000', 'Europe/Rome')
类型 |
场景 |
---|---|
查询语句 |
TIME_FLOOR('2023-04-25 09:44:35.000', 'PT2H', '2012-12-18 04:11:11.000', 'Europe/Rome') |
返回结果 |
2023-04-25 08:11:11.000 |
ceil函数
使用时间单位对时间戳进行四舍五入,单位可以是SECOND、MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。
语法:ceil(expr, unit)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
是 |
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 |
String |
是 |
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 |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
是 |
period |
ISO8601的周期 |
String |
是 |
step |
步长 |
Integer |
是 |
timezone |
时区 |
String |
否 |
返回值类型:String类型
示例:SELECT TIME_SHIFT('2023-04-22 15:31:30.000', 'P1D', 5), TIME_SHIFT('2023-04-22 15:31:30.000', 'P1D', 5, 'Asia/Shanghai')
类型 |
场景1 |
场景2 |
---|---|---|
查询语句 |
TIME_SHIFT('2023-04-22 15:31:30.000', 'P1D', 5) |
TIME_SHIFT('2023-04-22 15:31:30.000', 'P1D', 5, 'Asia/Shanghai') |
返回结果 |
2023-04-27 15:31:30.000 |
2023-04-27 23:31:30.000 |
timezone_hour函数
计算时区的小时偏移量。
语法:timezone_hour(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TIMEZONE |
String |
否 |
返回值类型:Integer类型
示例:SELECT TIMEZONE_HOUR('2023-04-22 15:31:30.000 Europe/Rome')
类型 |
场景 |
---|---|
查询语句 |
TIMEZONE_HOUR('2023-04-22 15:31:30.000 Europe/Rome') |
返回结果 |
1 |
timezone_minute函数
计算时区的分钟偏移量。
语法:timezone_minute(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TIMEZONE |
String |
否 |
返回值类型:Integer类型
示例:SELECT TIMEZONE_MINUTE('2023-04-22 15:31:30.000 Europe/Rome')
类型 |
场景 |
---|---|
查询语句 |
TIMEZONE_MINUTE('2023-04-22 15:31:30.000 Europe/Rome') |
返回结果 |
0 |
time_format函数
将时间戳类型的日期和时间表达式转换为指定格式的日期和时间表达式。
语法:time_format(expr, format)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式。 |
String |
是 |
format |
时间格式。 |
String |
是 |
返回值类型:String类型
示例:SELECT TIME_FORMAT(__time, 'yyyy-MM-dd HH:mm:ss')
类型 |
场景 |
---|---|
查询语句 |
TIME_FORMAT(__time, 'yyyy-MM-dd HH:mm:ss') |
返回结果 |
2023-02-16 07:38:25 |
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_format函数
将时间戳类型的日期和时间表达式转换为指定格式的日期和时间表达式。与time_format函数功能一致。
语法:date_format(expr, format)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
是 |
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%.
time_parse函数
time_parse将给定的字符串expr,依据用户自定义的pattern参数以 Joda DateTimeFormat模式解析为时间戳。若<pattern>未填写则以默认的ISO8601将字符串解析。
语法:time_parse(expr, pattern)
date_parse函数
将日期和时间字符串转换为指定格式的时间戳类型的日期和时间表达式。
语法:date_parse(expr, pattern)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
日期和时间表达式。 |
String |
是 |
pattern |
日期和时间表达式的转换格式 |
String |
是 |
返回值类型:timestamp类型
示例:SELECT DATE_PARSE('1996-03-22 14:32:00.000','%Y-%m-%d %h:%i')
类型 |
场景 |
---|---|
查询语句 |
DATE_PARSE('1996-03-22 14:32:00.000','%Y-%m-%d %h:%i') |
返回结果 |
1996-03-22 14:32: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 |
日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
是 |
unit |
时间单位 |
String |
是 |
返回值类型:Long类型
示例:SELECT DATE_TRUNC('year', '2022-11-20 12:20:30.123')
类型 |
场景 |
---|---|
查询语句 |
DATE_TRUNC('year', '2022-11-20 12:20:30.123') |
返回结果 |
2022-01-01 00:00:00.000 |
date_diff函数
返回时间戳expr1和时间戳expr2之间的单位数(有符号)。
语法:date_diff(unit, expr1, expr2)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr1 |
第一个日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
是 |
expr2 |
第二个日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
|
unit |
时间单位 |
String |
是 |
返回值类型:Long类型
示例:SELECT DATE_DIFF('MONTH', NOW(),'2022-11-20 12:20:30.123')
类型 |
场景 |
---|---|
查询语句 |
DATE_DIFF('MONTH', NOW(),'2022-11-20 12:20:30.123') |
返回结果 |
4 |
current_date函数
返回当前日期,格式是“yyyy-MM-dd”。
语法:current_date()
返回值类型:String类型
示例:SELECT CURRENT_DATE()
类型 |
场景 |
---|---|
查询语句 |
CURRENT_DATE() |
返回结果 |
2023-04-17 |
now函数
返回当前日期和时间,格式是“yyyy-MM-dd HH:mm:ss.SSS”。功能与current_timestamp一致
语法:now()
返回值类型:String类型
示例:SELECT NOW()
类型 |
场景 |
---|---|
查询语句 |
NOW() |
返回结果 |
2023-04-17 10:48:41.286 |
date_add函数
给时间加上给定的时间间隔。
语法:date_add(unit, n, expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
unit |
时间单位,取值为millisecond、second、minute、hour、day、week、month、quarter、year |
String |
是 |
n |
时间间隔 |
Long |
是 |
expr |
时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS |
String |
是 |
返回值类型:String类型
示例:SELECT DATE_ADD('minute', 7, '2023-05-15 16:14:00.569')
类型 |
场景 |
---|---|
查询语句 |
DATE_ADD('minute', 7, '2023-05-15 16:14:00.569') |
返回结果 |
2023-05-15 16:21:00.569 |
current_time函数
返回当前时间,格式为HH:mm:ss.SSSSSS。
语法:current_time()
返回值类型:String类型
示例:SELECT CURRENT_TIME()
类型 |
场景 |
---|---|
查询语句 |
CURRENT_TIME () |
返回结果 |
09:38:15.869881 |
current_timezone函数
返回当前时区。
语法:current_timezone()
返回值类型:String类型
示例:SELECT CURRENT_TIMEZONE()
类型 |
场景 |
---|---|
查询语句 |
CURRENT_TIMEZONE () |
返回结果 |
Asia/Shanghai |
localtime函数
返回本地时间。
语法:localtime()
返回值类型:String类型
示例:SELECT LOCALTIME()
类型 |
场景 |
---|---|
查询语句 |
LOCALTIME() |
返回结果 |
11:48:45.609726 |
localtimestamp函数
返回本地的日期和时间。
语法:localtimestamp
返回值类型:String类型
示例:SELECT LOCALTIMESTAMP
类型 |
场景 |
---|---|
查询语句 |
LOCALTIMESTAMP |
返回结果 |
2023-09-22 14:47:59.325 |
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 |
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 |
time_series函数
用于补全您查询时间窗口内缺失的数据。time_series函数必须搭配GROUP BY语法和ORDER BY语法使用。
语法:time_series(x, window_time, format, padding_data)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
x |
原始字段。 |
long或date |
是 |
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 |
返回结果 |