更新时间:2025-01-24 GMT+08:00
分享

日期和时间函数

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

函数列表

表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”。

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”。

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

返回值类型:timestamp类型

示例: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函数

将毫秒级的时间戳转换为timestamp类型的时间和日期表达式。

  • 将毫秒级的时间戳转化为timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS。

    语法:mills_to_timestamp(expr)

    表7 参数说明

    参数名称

    描述

    类型

    是否必选

    expr

    UNIX时间戳

    Long

    返回值类型:timestamp类型

    示例:SELECT MILLS_TO_TIMESTAMP(1626774758000)

    表8 查询分析结果

    类型

    场景

    查询语句

    MILLS_TO_TIMESTAMP(1626774758000)

    返回结果

    2021-07-20 17:52:38.000 Asia/Shanghai

from_unixtime函数

将秒级或毫秒级时间戳转换为日期和时间表达式。当expr取值小于时视为秒。

  • 将秒级或毫秒级时间戳转化为时间戳类型的日期和时间表达式。

    语法: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)

表16 参数说明

参数名称

描述

类型

是否必选

expr

timestamp类型的日期和时间表达式

timestamp类型

返回值类型:String类型

示例:SELECT TO_ISO8601(from_unixtime(1626774758000))

表17 查询分析结果

类型

场景

查询语句

TO_ISO8601(FROM_UNIXTIME(1626774758000))

返回结果

2021-07-20T09:52:38.000Z

timestamp_to_mills函数

将timestamp类型的日期和时间表达式转换为毫秒级的时间戳。

语法:timestamp_to_mills(expr)

表18 参数说明

参数名称

描述

类型

是否必选

expr

timestamp类型的日期和时间表达式

timestamp类型

返回值类型:Long类型

示例:select timestamp_to_mills(from_unixtime(1626774758000))

表19 查询分析结果

类型

场景

查询语句

timestamp_to_mills(from_unixtime(1626774758000))

返回结果

1681287322285

to_unixtime函数

将timestamp类型的日期和时间表达式转换毫秒级的时间戳。

语法:to_unixtime(expr)

表20 参数说明

参数名称

描述

类型

是否必选

expr

timestamp类型的日期和时间表达式

timestamp

返回值类型:Long类型

示例:SELECT to_unixtime(from_unixtime(1626774758000))

表21 查询分析结果

类型

场景

查询语句

to_unixtime(from_unixtime(1626774758000))

返回结果

1626774758

time_ceil函数

将timestamp类型的时间戳按固定周期以四舍五入的方式取整,将其作为新的时间戳返回。Period可以是任何ISO8601的周期,如P3M(季度)或PT12H(半天)。

time_ceil(expr, period)

表22 参数说明

参数名称

描述

类型

是否必选

expr

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

timestamp

period

ISO8601的周期

String

返回值类型:timestamp类型

示例1:SELECT TIME_CEIL(from_unixtime(1731930422292), 'PT2H')

表23 查询分析结果

类型

场景

查询语句

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)

表24 参数说明

参数名称

描述

类型

是否必选

expr

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

timestamp

period

ISO8601的周期

String

返回值类型:timestamp类型

示例1:SELECT TIME_FLOOR(from_unixtime(1626774758000), 'PT2H')

表25 查询分析结果

类型

场景

查询语句

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)

表26 参数说明

参数名称

描述

类型

是否必选

expr

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

timestamp

unit

时间单位

String

返回值类型:String类型

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

表27 查询分析结果

类型

场景

查询语句

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)

表28 参数说明

参数名称

描述

类型

是否必选

expr

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

timestamp

unit

时间单位

String

返回值类型:Strin类型

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

表29 查询分析结果

类型

场景

查询语句

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

表30 参数说明

参数名称

描述

类型

是否必选

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

表31 查询分析结果

类型

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

表32 参数说明

参数名称

描述

类型

是否必选

expr

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

timestamp

返回值类型:Integer类型

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

表33 查询分析结果

类型

场景

查询语句

TIMEZONE_HOUR(from_unixtime(__time,'Europe/Rome'))

返回结果

1

timezone_minute函数

计算时区的分钟偏移量。

语法:timezone_minute(expr)

表34 参数说明

参数名称

描述

类型

是否必选

expr

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

timestamp

返回值类型:Integer类型

示例:SELECT TIMEZONE_MINUTE(from_unixtime(__time))

表35 查询分析结果

类型

场景

查询语句

TIMEZONE_MINUTE(from_unixtime(__time))

返回结果

0

time_format函数

将毫秒级的时间戳或timestamp类型的日期和时间表达式expr,依据用户自定义的format参数以 Joda DateTimeFormat模式转换为指定日期和时间格式的字符串。

语法:time_format(expr, format)

表36 参数说明

参数名称

描述

类型

是否必选

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

表37 查询分析结果

类型

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

表38 参数说明

参数名称

描述

类型

是否必选

expr

某种时间格式的字符串。

String

format

时间格式。

String

返回值类型:timestamp类型的时间和日志表达式

示例:SELECT TIME_PARSE('2024-11-18 22:15:11', 'yyyy-MM-dd HH:mm:ss')
表39 查询和分析结果

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

表40 参数说明

参数名称

描述

类型

是否必选

expr

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

timestamp

format

时间格式

String

返回值类型:String类型

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

表41 查询分析结果

类型

场景

查询语句

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)

表42 参数说明

参数名称

描述

类型

是否必选

expr

日期和时间表达式。

String

pattern

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

String

返回值类型:timestamp类型类型的日期和时间表达式。

示例:SELECT DATE_PARSE('2024-11-18 10:53','%Y-%m-%d %h:%i')

表43 查询分析结果

类型

场景

查询语句

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)

表44 参数说明

参数名称

描述

类型

是否必选

expr

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

String

unit

时间单位

String

返回值类型:Long类型

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

表45 查询分析结果

类型

场景

查询语句

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

返回结果

2023

date_trunc函数

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

语法:date_trunc(unit, expr)

表46 参数说明

参数名称

描述

类型

是否必选

expr

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

timestamp

unit

时间单位

String

返回值类型:Long类型

示例:SELECT DATE_TRUNC('year', from_unixtime(__time))

表47 查询分析结果

类型

场景

查询语句

DATE_TRUNC('year', from_unixtime(__time))

返回结果

2024-01-01 00:00:00.000 Asia/Shanghai

date_diff函数

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

语法:date_diff(unit, expr1, expr2)

表48 参数说明

参数名称

描述

类型

是否必选

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

表49 查询分析结果

类型

场景

查询语句

DATE_DIFF('SECOND', CURRENT_TIMESTAMP() ,from_unixtime(__time))

返回结果

-899.00

current_date函数

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

语法:current_date()

返回值类型:String类型

示例:SELECT CURRENT_DATE()

表50 查询分析结果

类型

场景

查询语句

CURRENT_DATE()

返回结果

2023-04-17

now函数

返回当前日期和时间。功能与current_timestamp一致

语法:now()

返回值类型:timestamp类型的日期和时间表达式,格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone

示例:SELECT NOW()

表51 查询分析结果

类型

场景

查询语句

NOW()

返回结果

2024-11-18 23:29:18.434 Asia/Shanghai

date_add函数

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

语法:date_add(unit, n, expr)

表52 参数说明

参数名称

描述

类型

是否必选

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

表53 查询分析结果

类型

场景

查询语句

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

表54 查询分析结果

类型

场景

查询语句

CURRENT_TIME ()

返回结果

23:38:18.491+08:00

current_timezone函数

返回当前时区。

语法:current_timezone()

返回值类型:String类型

示例:SELECT CURRENT_TIMEZONE()

表55 查询分析结果

类型

场景

查询语句

CURRENT_TIMEZONE ()

返回结果

Asia/Shanghai

localtime函数

返回本地时间。

语法:localtime()

返回值类型:String类型

示例:SELECT LOCALTIME()

表56 查询分析结果

类型

场景

查询语句

LOCALTIME()

返回结果

23:38:51.346

localtimestamp函数

返回本地的日期和时间。

语法:localtimestamp

返回值类型:String类型

示例:SELECT LOCALTIMESTAMP

表57 查询分析结果

类型

场景

查询语句

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

表58 查询分析结果

类型

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

表59 查询分析结果

类型

场景

查询语句

YEAR_OF_WEEK(from_unixtime(__time))

返回结果

2024

yow函数

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

语法:yow(expr)

表60 参数说明

参数名称

描述

类型

是否必选

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

表61 查询分析结果

类型

场景1

场景2

查询语句

YOW('2023-09-22 14:47:59.325')

YOW('2023-09-22')

返回结果

2023

2023

表62 参数说明

参数名称

描述

类型

是否必选

expr

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

String

返回值类型:Integer类型

示例:SELECT YOW(from_unixtime(__time))

表63 查询分析结果

类型

场景

查询语句

YOW(from_unixtime(__time))

返回结果

2024

time_series函数

用于补全您查询时间窗口内缺失的数据。time_series函数必须搭配GROUP BY语法和ORDER BY语法使用。

语法:time_series(x, window_time, format, padding_data)

表64 参数说明

参数名称

描述

类型

是否必选

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

表65 查询分析结果

类型

场景

查询语句

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

返回结果

相关文档