
# 日期和时间函数
本文介绍日期、时间函数的语法规则，包括参数解释、函数示例等。管道符特性处理的日期和时间为timestamp类型，返回值格式表现为yyyy-MM-dd HH:mm:ss.SSS TimeZone。
#### 函数列表
表1日期和时间函数 
| 函数                                                                                                                                                                                                                        | 描述                                                                                                                                                                                                          |
|:---|:---|
| [current_timestamp函数]      | 返回当前日期和时间，格式为yyyy-MM-dd HH:mm:ss.SSS                                                                                                                                                                        |
| [from_iso8601_date函数]      | 将ISO8601格式的日期表达式转换为date类型的日期表达式，格式为yyyy-MM-dd                                                                                                                                                               |
| [from_iso8601_timestamp函数] | 将ISO8601格式的日期表达式转换为timestamp类型的日期表达式，格式为yyyy-MM-dd HH:mm:ss.SSS                                                                                                                                             |
| [mills_to_timestamp函数]     | 将毫秒级的时间戳转换为timestamp类型的时间和日期表达式。                                                                                                                                                                            |
| [from_unixtime函数]          | 将秒级或毫秒级时间戳转换为日期和时间表达式。                                                                                                                                                                                      |
| [to_iso8601函数]             | 将日期类型或时间戳类型的日期时间表达式转换为ISO8601格式的日期时间表达式。                                                                                                                                                                    |
| [timestamp_to_mills函数]     | 将timestamp类型的日期和时间表达式转换为毫秒级的时间戳。                                                                                                                                                                            |
| [to_unixtime函数]            | 将timestamp类型的日期和时间表达式转换毫秒级的时间戳。                                                                                                                                                                             |
| [time_ceil函数]              | 将timestamp或long类型的时间戳按固定周期以向上舍入的方式取整，将其作为新的时间戳返回。Period可以是任何ISO8601的周期，如P3M（季度）或PT12H（半天）。                                                                                                                  |
| [time_floor函数]             | 将timestamp或long类型的时间戳按时间戳返回。Period可以是任何ISO8601的周期，如P3M（季度）或PT12H（半天）。                                                                                                                                       |
| [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函数]          | 计算时区的小时偏移量。                                                                                                                                                                                                 |
| [timezone_minute函数]        | 计算时区的分钟偏移量。                                                                                                                                                                                                 |
| [time_format函数]            | 将毫秒级的时间戳或timestamp类型的日期和时间表达式expr，依据用户自定义的format参数以[Joda DateTimeFormat](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html)模式转换为指定日期和时间格式的字符串。                                |
| [time_parse函数]                                                                                                 | time_parse将给定的字符串expr，依据用户自定义的format参数以[Joda DateTimeFormat](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html)模式解析为timestamp类型的日期和时间表达式，格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone。 |
| [date_format函数]            | timestamp类型的日期和时间表达式转换为指定日期和时间格式的字符串。                                                                                                                                                                       |
| [date_parse函数]             | 将日期和时间字符串转换为指定格式的时间戳类型的日期和时间表达式。                                                                                                                                                                            |
| [time_extract函数]           | 通过指定字段提取日期时间表达式的日期或时间部分。                                                                                                                                                                                    |
| [date_trunc函数]             | 根据您指定的时间单位截断日期和时间表达式，指定的时间单位有毫秒、秒、分钟、小时、天、月或年。                                                                                                                                                              |
| [date_diff函数]              | 返回时间戳expr1和时间戳expr2之间的单位数（有符号）。                                                                                                                                                                             |
| [current_date函数]           | 返回当前日期，格式是"yyyy-MM-dd"。                                                                                                                                                                                     |
| [now函数]                    | 返回当前日期和时间。                                                                                                                                                                                                  |
| [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函数]           | 用于补全您查询时间窗口内缺失的数据。                                                                                                                                                                                          |
| [__time_range__.end_time]                                                                                                                                 | 查询范围的结束时间，毫秒级的时间戳。                                                                                                                                                                                          |
| [__time_range__.start_time]                                                                                                                               | 查询范围的起始时间，毫秒级的时间戳。                                                                                                                                                                                          |
   
 #### current_timestamp函数
返回当前日期和时间，格式为yyyy-MM-dd HH:mm:ss.SSS。
语法：current_timestamp()
返回值类型：timestamp类型
示例：SELECT CURRENT_TIMESTAMP()
表2查询分析结果 
| 类型 | 查询语句                | 返回结果                                  |
|:---|:---|:---|
| 场景 | CURRENT_TIMESTAMP() | 2025-05-29 20:09:17.656 Asia/Shanghai |
   
 #### 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取值小于315360000000视为秒级时间戳。
- 将秒级或毫秒级时间戳转化为时间戳类型的日期和时间表达式。 语法：from_unixtime(expr)
  表9参数说明 
  | 参数名称 | 描述        | 类型   | 是否必选 |
  |:---|:---|:---|:---|
  | expr | 秒级或毫秒级时间戳 | Long | 是    |
     
  返回值类型：timestamp
  示例：SELECT FROM_UNIXTIME(1626774758000)
  表10查询分析结果 
  | 类型 | 查询语句                         | 返回结果                                  |
  |:---|:---|:---|
  | 场景 | FROM_UNIXTIME(1626774758000) | 2021-07-20 17:52:38.000 Asia/shanghai |
     
  示例：SELECT FROM_UNIXTIME(1731916857)
  表11查询分析结果 
  | 类型 | 查询语句                      | 返回结果                                  |
  |:---|:---|:---|
  | 场景 | FROM_UNIXTIME(1731916857) | 2024-11-18 16:00:57.000 Asia/shanghai |
     
  

- 将秒级或毫秒级时间戳转化为带特定时区的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-20T17:52:38.000+08:00 |
   
 #### 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)) | 1626774758000 |
   
 #### 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或long类型的时间戳按固定周期以向上舍入的方式取整，将其作为新的时间戳返回。Period可以是任何ISO8601的周期，如P3M（季度）或PT12H（半天）。
time_ceil(expr, period)
表22参数说明 
| 参数名称   | 描述                                           | 类型             | 是否必选 |
|:---|:---|:---|:---|
| expr   | 日期和时间表达式，格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone | timestamp或long | 是    |
| period | ISO8601的周期                                   | String         | 是    |
   
返回值类型：timestamp类型
示例1：SELECT time_ceil(from_unixtime(__time),'PT1M')
表23查询分析结果 
| 类型 | 查询语句                                           | 返回结果                                  |
|:---|:---|:---|
| 场景 | from_unixtime(__time)                          | 2025-05-30 14:57:35.445 Asia/Shanghai |
| 场景 | SELECT time_ceil(from_unixtime(__time),'PT1M') | 2025-05-30 14:58: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或long类型的时间戳按时间戳返回。Period可以是任何ISO8601的周期，如P3M（季度）或PT12H（半天）。
语法：time_floor(expr, period)
表24参数说明 
| 参数名称   | 描述                                                       | 类型             | 是否必选 |
|:---|:---|:---|:---|
| expr   | timestamp类型的日期和时间表达式，格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone | timestamp或long | 是    |
| period | ISO8601的周期                                               | String         | 是    |
   
返回值类型：timestamp类型
示例1：SELECT TIME_FLOOR(from_unixtime(1626774758000), 'PT1H')
表25查询分析结果 
| 类型  | 查询语句                                             | 返回结果                                    |
|:---|:---|:---|
| 场景1 | from_unixtime(1626774758000)                     | 2021-07-20 17:52:38.000 Asia/Shanghai   |
| 场景2 | TIME_FLOOR(from_unixtime(1626774758000), 'PT1H') | 2021-07-20 17:00:00.000 Australia/Perth |
   
 #### 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    | 是    |
   
返回值类型：String类型
示例：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 | from_unixtime(__time)                                 | 2024-11-18 21:58:59.907 Asia/Shanghai |
| 场景2 | TIME_SHIFT( from_unixtime(__time), 'P1D', 5)          | 2024-11-23 21:58:59.907 Asia/Shanghai |
| 场景3 | TIME_SHIFT( from_unixtime(__time), 'P1D', 5,'+08:00') | 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(from_unixtime(__time))
表33查询分析结果 
| 类型 | 查询语句                                               | 返回结果 |
|:---|:---|:---|
| 场景 | SELECT TIMEZONE_HOUR(from_unixtime(1763432620000)) | 8    |
   
 #### 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(1763432710000 )) | 0    |
   
 #### time_format函数
将毫秒级的时间戳或timestamp类型的日期和时间表达式expr，依据用户自定义的format参数以[Joda DateTimeFormat](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html)模式转换为指定日期和时间格式的字符串。
语法：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 | TIME_FORMAT(1763432710000, 'yyyy-MM-dd HH:mm:ss')                | 2025-11-18 10:25:10 |
| 场景2 | TIME_FORMAT(from_unixtime(1763432710000), 'yyyy-MM-dd HH:mm:ss') | 2025-11-18 10:25:10 |
   
 #### time_parse函数
time_parse将给定的字符串expr，依据用户自定义的format参数以[Joda DateTimeFormat](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html)模式解析为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_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(from_unixtime(1763433116000 ),'%H%i')
表41查询分析结果 
| 类型 | 查询语句                                              | 返回结果 |
|:---|:---|:---|
| 场景 | DATE_FORMAT(from_unixtime(1763433116000 ),'%H%i') | 1031 |
   
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 18:53:00.000 |
   
pattern在设置时，如果设置了分钟，那么就必须同时配置分钟之前的年、月、日和时。
 #### time_extract函数
通过指定字段提取日期时间表达式的日期或时间部分。
单位可以是纪元、秒、分钟、小时、天（月中的某天）、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(1763433286000))
表47查询分析结果 
| 类型 | 查询语句                                             | 返回结果                                    |
|:---|:---|:---|
| 场景 | DATE_TRUNC('year', from_unixtime(1763433286000)) | 2025-01-01 00:00:00.000 Australia/Perth |
   
 #### 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', from_unixtime(1763433366000) ,from_unixtime(1763433576000))
表49查询分析结果 
| 类型 | 查询语句                                                                            | 返回结果 |
|:---|:---|:---|
| 场景 | DATE_DIFF('SECOND', from_unixtime(1763433366000) ,from_unixtime(1763433576000)) | 210  |
   
 #### 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 from_unixtime(__time) as t, DATE_ADD('MINUTE', 7, from_unixtime(__time)) as dt
表53查询分析结果 
| 类型  | 查询语句                                         | 返回结果                                  |
|:---|:---|:---|
| 场景1 | from_unixtime(__time)                        | 2024-11-18 23:00:00.000 Asia/Shanghai |
| 场景2 | DATE_ADD('MINUTE', 7, from_unixtime(__time)) | 2024-11-18 23:07:00.000 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)
表58参数说明 
| 参数名称 | 描述                                          | 类型     | 是否必选 |
|:---|:---|:---|:---|
| 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')
表59查询分析结果 
| 类型  | 查询语句                                    | 返回结果 |
|:---|:---|:---|
| 场景1 | YEAR_OF_WEEK('2023-09-22 14:47:59.325') | 2023 |
| 场景2 | YEAR_OF_WEEK('2023-09-22')              | 2023 |
   
表60参数说明 
| 参数名称 | 描述                                                       | 类型        | 是否必选 |
|:---|:---|:---|:---|
| expr | timestamp类型的日期和时间表达式，格式为yyyy-MM-dd HH:mm:ss.SSS TimeZone | timestamp | 是    |
   
返回值类型：Integer
示例：SELECT YEAR_OF_WEEK(from_unixtime(1763433511000))
表61查询分析结果 
| 类型 | 查询语句                                       | 返回结果 |
|:---|:---|:---|
| 场景 | YEAR_OF_WEEK(from_unixtime(1763433511000)) | 2025 |
   
 #### yow函数
返回目标日期在ISO周日历中的年份。year_of_week函数等同于yow函数。
语法：yow(expr)
表62参数说明 
| 参数名称 | 描述                                          | 类型     | 是否必选 |
|:---|:---|:---|:---|
| 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')
表63查询分析结果 
| 类型  | 查询语句                           | 返回结果 |
|:---|:---|:---|
| 场景1 | YOW('2023-09-22 14:47:59.325') | 2023 |
| 场景2 | YOW('2023-09-22')              | 2023 |
   
表64参数说明 
| 参数名称 | 描述                                          | 类型     | 是否必选 |
|:---|:---|:---|:---|
| expr | 时间表达式，格式为yyyy-MM-dd HH:mm:ss.SSS或yyyy-MM-dd | String | 是    |
   
返回值类型：Integer类型
示例：SELECT YOW(from_unixtime(__time))
表65查询分析结果 
| 类型 | 查询语句                              | 返回结果 |
|:---|:---|:---|
| 场景 | YOW(from_unixtime(1763433546000)) | 2025 |
   
 #### time_series函数
用于补全您查询时间窗口内缺失的数据。time_series函数必须搭配GROUP BY语法和ORDER BY语法使用。
语法：time_series(x, window_time, format, padding_data)
表66参数说明 
| 参数名称         | 描述                                                                                                                | 类型             | 是否必选 |
|:---|:---|:---|:---|
| x            | 原始字段。                                                                                                             | long或timestamp | 是    |
| 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
表67查询分析结果 
| 类型 | 查询语句                                                                                                         | 返回结果                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| 场景 | select time_series(__time, '1m', 'HH:mm:ss','0') as time, count(\*) as count group by time order by time asc | **time count** 7:04:00 5.00 7:05:00 6.00 7:06:00 6.00 7:07:00 6.00 7:08:00 6.00 7:09:00 6.00 7:10:00 6.00 7:11:00 6.00 7:12:00 6.00 7:13:00 6.00 |
   
 #### __time_range__.end_time
查询范围的结束时间，毫秒级的时间戳。SQL语句解析时将" __time_range__.end_time" 替换为查询时间范围中的结束时间。
返回值类型：long类型的时间戳
**示例**：当前查询时间范围内最新一条日志的时间到查询时间范围中的结束时间的差值。
**查询和分析语句**：
```
* | select "__time_range__.end_time" - max(__time) as latency from log
```
**查询和分析结果**：
![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002540661842.png "点击放大")
 #### __time_range__.start_time
查询范围的开始时间，毫秒级的时间戳。SQL语句解析时将" __time_range__.start_time" 替换为查询时间范围中的起始时间。
返回值类型：long类型的时间戳
**示例**：当前查询时间范围内最早一条日志的时间到查询时间范围中的起始时间的差值。
**查询和分析语句**：
```
* | select min(__time) - "__time_range__.start_time" as latency from log
```
**查询和分析结果**：
![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002540661856.png "点击放大")
