更新时间:2024-07-25 GMT+08:00
分享

日期和时间函数

本文介绍日期、时间函数的语法规则,包括参数解释、函数示例等。管道符特性处理的日期和时间格式为yyyy-MM-dd HH:mm:ss.SSS。

函数列表

表1 日期和时间函数

函数

描述

current_timestamp函数

返回当前日期和时间,格式为yyyy-MM-dd HH:mm:ss.SSS

from_iso8601_date函数

将ISO8601格式的日期表达式expr转换为date类型的日期表达式,格式为yyyy-MM-dd

from_iso8601_timestamp函数

将ISO8601格式的日期表达式expr转换为timestamp类型的日期表达式,格式为yyyy-MM-dd HH:mm:ss.SSS

mills_to_timestamp函数

将UNIX时间戳转换为日期和时间表达式。

from_unixtime函数

将UNIX时间戳转换为日期和时间表达式。与mills_to_timestamp函数用法一致。

to_iso8601函数

将日期类型或时间戳类型的日期时间表达式转换为ISO8601格式的日期时间表达式。

timestamp_to_mills函数

将时间戳类型的日期和时间表达式转换为UNIX时间戳。

to_unixtime函数

将时间戳类型的日期和时间表达式转换为UNIX时间戳。与timestamp_to_mills函数用法一致。

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_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类似,但更灵活。

ceil函数

使用时间单位对时间戳进行四舍五入,单位可以是SECOND、MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。

floor函数

使用时间单位对时间戳进行向下舍入,单位可以是SECOND、MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。

time_shift函数

将时间戳expr移动一个Period(步长时间)。Period可以是任何ISO8601的Period。

timezone_hour函数

计算系统时区和utc时区的小时偏移量。如果提供了时区,则计算系统时区与给定时区的偏移量。

timezone_minute函数

计算系统时区和utc时区的分钟偏移量。如果提供了时区,则计算系统时区与给定时区的偏移量。

time_format函数

将时间戳类型的日期和时间表达式转换为指定格式的日期和时间表达式。

date_format函数

将时间戳类型的日期和时间表达式转换为指定格式的日期和时间表达式。

time_parse函数

将日期和时间字符串转换为指定格式的时间戳类型的日期和时间表达式。

date_parse函数

将日期和时间字符串转换为指定格式的时间戳类型的日期和时间表达式。

time_extract函数

通过指定字段提取日期时间表达式的日期或时间部分。EPOCH, SECOND, MINUTE, HOUR, DAY(月的日), DOW(周的日), DOY(年的日), WEEK(年周), MONTH(1到12), QUARTER(1到4),或YEAR,时区(如果提供)应为时区名称,如"America/Los_Angeles"或偏移量,如"-08:00"

date_trunc函数

根据您指定的时间单位截断日期和时间表达式,并以毫秒、秒、分钟、小时、天、月或年为单位对齐。

date_diff函数

返回时间戳expr1和时间戳expr2之间的单位数(有符号)。

current_date函数

返回当前日期,格式是“yyyy-MM-dd”。

now函数

返回当前日期和时间,格式是“yyyy-MM-dd HH:mm:ss.SSS”。功能与current_timestamp一致

date_add函数

给时间加上给定的时间间隔

current_time函数

返回当前时间,格式为HH:mm:ss.SSSSSS。

current_timezone函数

返回当前时区。

localtime函数

返回本地时间。

localtimestamp函数

返回本地的日期和时间。

year_of_week函数

返回目标日期在ISO周日历中的年份。year_of_week函数等同于yow函数。

yow函数

返回目标日期在ISO周日历中的年份。year_of_week函数等同于yow函数。

time_series函数

用于补全您查询时间窗口内缺失的数据。

current_timestamp函数

返回当前日期和时间,格式为yyyy-MM-dd HH:mm:ss.SSS。

语法:current_timestamp()

返回值类型:String类型

示例:SELECT CURRENT_TIMESTAMP()

表2 查询分析结果

类型

场景

查询语句

CURRENT_TIMESTAMP()

返回结果

2023-04-17 10:48:41.286

from_iso8601_date函数

将ISO8601格式的日期表达式转化为date类型的日期表达式,格式为YYYY-MM-DD。

语法:from_iso8601_date(expr)

表3 参数说明

参数名称

描述

类型

是否必选

expr

ISO8601格式的日期表达式

String

返回值类型:String类型

示例:SELECT FROM_ISO8601_DATE('2018-05-14')

表4 查询分析结果

类型

场景

查询语句

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)

表5 参数说明

参数名称

描述

类型

是否必选

expr

ISO8601格式的日期和时间表达式

String

返回值类型:timestamp类型。

示例:SELECT FROM_ISO8601_TIMESTAMP('2018-05-14T11:51:50.153+08:00')

表6 查询分析结果

类型

场景

查询语句

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。

    语法:mills_to_timestamp(expr)

    表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时间戳转化为没有时区的时间戳类型的日期和时间表达式。

    语法:from_unixtime(expr)

    表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)

表19 参数说明

参数名称

描述

类型

是否必选

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')

表20 查询分析结果

类型

场景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)

表21 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS

String类型

返回值类型:Long类型

示例:SELECT TIMESTAMP_TO_MILLS('2023-04-12 16:15:22.285')

表22 查询分析结果

类型

场景

查询语句

TIMESTAMP_TO_MILLS('2023-04-12 16:15:22.285')

返回结果

1681287322285

to_unixtime函数

将时间戳类型的日期和时间表达式转换为UNIX时间戳。与timestamp_to_mills函数用法一致。

语法:to_unixtime(expr)

表23 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS

String

返回值类型:Long类型

示例:SELECT TO_UNIXTIME('2023-04-12 16:15:22.285')

表24 查询分析结果

类型

场景

查询语句

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加中括号表示可选,非必填。

表25 参数说明

参数名称

描述

类型

是否必选

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')

表26 查询分析结果

类型

场景

查询语句

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')

表27 查询分析结果

类型

场景

查询语句

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')

表28 查询分析结果

类型

场景

查询语句

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加中括号表示可选,非必填。

表29 参数说明

参数名称

描述

类型

是否必选

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')

表30 查询分析结果

类型

场景

查询语句

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')

表31 查询分析结果

类型

场景

查询语句

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')

表32 查询分析结果

类型

场景

查询语句

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)

表33 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS

String

unit

时间单位

String

返回值类型:String类型

示例:SELECT CEIL('2023-04-20 11:28:31.770', 'DAY')

表34 查询分析结果

类型

场景

查询语句

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)

表35 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS

String

unit

时间单位

String

返回值类型:Strin类型

示例:SELECT FLOOR('2023-04-20 11:28:31.770', 'DAY')

表36 查询分析结果

类型

场景

查询语句

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])

表37 参数说明

参数名称

描述

类型

是否必选

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')

表38 查询分析结果

类型

场景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)

表39 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TIMEZONE

String

返回值类型:Integer类型

示例:SELECT TIMEZONE_HOUR('2023-04-22 15:31:30.000 Europe/Rome')

表40 查询分析结果

类型

场景

查询语句

TIMEZONE_HOUR('2023-04-22 15:31:30.000 Europe/Rome')

返回结果

1

timezone_minute函数

计算时区的分钟偏移量。

语法:timezone_minute(expr)

表41 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TIMEZONE

String

返回值类型:Integer类型

示例:SELECT TIMEZONE_MINUTE('2023-04-22 15:31:30.000 Europe/Rome')

表42 查询分析结果

类型

场景

查询语句

TIMEZONE_MINUTE('2023-04-22 15:31:30.000 Europe/Rome')

返回结果

0

time_format函数

将时间戳类型的日期和时间表达式转换为指定格式的日期和时间表达式。

语法:time_format(expr, format)

表43 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式。

String

format

时间格式。

String

返回值类型:String类型

示例:SELECT TIME_FORMAT(__time, 'yyyy-MM-dd HH:mm:ss')

表44 查询分析结果

类型

场景

查询语句

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)

表45 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS

String

format

时间格式

String

返回值类型:String类型

示例:SELECT DATE_FORMAT(current_timestamp(),'%H%i')

表46 查询分析结果

类型

场景

查询语句

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)

  1. 字段样例

    __time: 2023-02-16T07:38:25.306Z

    start_time:2023-02-14 02:35:56

  2. 查询和分析语句
    SELECT __time,TIME_PARSE(start_time,'yyyy-MM-dd HH:mm:ss')
  3. 查询和分析结果
    表47 查询和分析结果

    __time

    _col0

    _col1

    2023-02-16T07:38:25.306Z

    2023-02-14T02:35:56.000Z

    2023-02-16 07:38:25

date_parse函数

将日期和时间字符串转换为指定格式的时间戳类型的日期和时间表达式。

语法:date_parse(expr, pattern)

表48 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式。

String

pattern

日期和时间表达式的转换格式

String

返回值类型:timestamp类型

示例:SELECT DATE_PARSE('1996-03-22 14:32:00.000','%Y-%m-%d %h:%i')

表49 查询分析结果

类型

场景

查询语句

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)

表50 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS

String

unit

时间单位

String

返回值类型:Long类型

示例:SELECT TIME_EXTRACT('2023-05-05','YEAR')

表51 查询分析结果

类型

场景

查询语句

TIME_EXTRACT('2023-05-05','YEAR')

返回结果

2023

date_trunc函数

根据您指定的时间单位截断日期和时间表达式,并以毫秒、秒、分钟、小时、天、月或年为单位对齐。

语法:date_trunc(unit, expr)

表52 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS

String

unit

时间单位

String

返回值类型:Long类型

示例:SELECT DATE_TRUNC('year', '2022-11-20 12:20:30.123')

表53 查询分析结果

类型

场景

查询语句

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)

表54 参数说明

参数名称

描述

类型

是否必选

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')

表55 查询分析结果

类型

场景

查询语句

DATE_DIFF('MONTH', NOW(),'2022-11-20 12:20:30.123')

返回结果

4

current_date函数

返回当前日期,格式是“yyyy-MM-dd”。

语法:current_date()

返回值类型:String类型

示例:SELECT CURRENT_DATE()

表56 查询分析结果

类型

场景

查询语句

CURRENT_DATE()

返回结果

2023-04-17

now函数

返回当前日期和时间,格式是“yyyy-MM-dd HH:mm:ss.SSS”。功能与current_timestamp一致

语法:now()

返回值类型:String类型

示例:SELECT NOW()

表57 查询分析结果

类型

场景

查询语句

NOW()

返回结果

2023-04-17 10:48:41.286

date_add函数

给时间加上给定的时间间隔。

语法:date_add(unit, n, expr)

表58 参数说明

参数名称

描述

类型

是否必选

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')

表59 查询分析结果

类型

场景

查询语句

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()

表60 查询分析结果

类型

场景

查询语句

CURRENT_TIME ()

返回结果

09:38:15.869881

current_timezone函数

返回当前时区。

语法:current_timezone()

返回值类型:String类型

示例:SELECT CURRENT_TIMEZONE()

表61 查询分析结果

类型

场景

查询语句

CURRENT_TIMEZONE ()

返回结果

Asia/Shanghai

localtime函数

返回本地时间。

语法:localtime()

返回值类型:String类型

示例:SELECT LOCALTIME()

表62 查询分析结果

类型

场景

查询语句

LOCALTIME()

返回结果

11:48:45.609726

localtimestamp函数

返回本地的日期和时间。

语法:localtimestamp

返回值类型:String类型

示例:SELECT LOCALTIMESTAMP

表63 查询分析结果

类型

场景

查询语句

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')

表64 查询分析结果

类型

场景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)

表65 参数说明

参数名称

描述

类型

是否必选

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')

表66 查询分析结果

类型

场景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)

表67 参数说明

参数名称

描述

类型

是否必选

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

表68 查询分析结果

类型

场景

查询语句

time_series(__time__, '1d', 'HH:mm:ss','0') as time, count(*) as count group by time order by time asc

返回结果

相关文档