You need to enable JavaScript to run this app.
导航

日期和时间函数

最近更新时间2024.01.30 10:05:14

首次发布时间2024.01.22 17:18:37

本文介绍日志服务支持的日期和时间函数语法及常见场景的使用示例。

注意

日志服务产品架构升级,支持更丰富的检索分析功能。

  • 如果控制台提示新一代架构正式发布信息,表示您使用的是 2.0 架构,可参考本文档使用相关功能。
  • 如果控制台未提示新一代架构正式发布信息,表示您使用的是 1.0 架构,可参考检索分析(1.0 架构)中的检索概述等文档使用相关功能。

关于 1.0 架构与 2.0 架构的具体说明,请参考日志服务架构升级通知

函数列表

说明

  • 日志服务中的日志时间戳精确到毫秒,所以配置时间格式(format)时可配置到毫秒级。
  • 日志服务默认为每条日志添加元数据字段 __time__,该字段的值为 UNIX 时间戳格式,单位为毫秒。
  • 在日志服务分析语句(SQL 语句)中,需要使用单引号('')包裹代表字符串的字符,无符号包裹或被双引号("")包裹的字符为字段名或列名。例如'time' 代表字符串,time"time" 代表字段名或列名。

函数类型

函数名称

语法

说明

日期和时间函数

CURRENT_DATE 函数

CURRENT_DATE

查询当前日期。

CURRENT_TIME 函数

CURRENT_TIME

查询当前时间和时区。

CURRENT_TIMESTAMP 函数

CURRENT_TIMESTAMP

查询当前日期、时间和时区。

CURRENT_TIMEZONE 函数

CURRENT_TIMEZONE()

查询当前时区。

DATE 函数

DATE(KEY)

提取日期和时间中的日期部分。

DATE_FORMAT 函数

DATE_FORMAT(KEY, format)

将 Timestamp 类型的日期或时间转化为其他指定格式。

DATE_PARSE 函数

DATE_PARSE(KEY, format)

将日期和时间字符串转换为其他指定格式。

FROM_ISO8601_DATE 函数

FROM_ISO8601_DATE(KEY)

将 ISO8601 格式的日期转化为 Date 类型的日期。

FROM_ISO8601_TIMESTAMP 函数

FROM_ISO8601_TIMESTAMP(KEY)

将 ISO8601 格式的日期和时间转化为 Timestamp 类型的日期和时间。

FROM_UNIXTIME 函数

FROM_UNIXTIME(KEY)

将 UNIX 时间戳转化为无时区的 Timestamp 类型的日期和时间。

FROM_UNIXTIME(KEY, time zone)

将 UNIX时间戳转化为带时区的 Timestamp 类型的日期和时间。

FROM_UNIXTIME(KEY, hours, minutes)

将 UNIX时间戳转化为带时区的 Timestamp 类型的日期和时间,且支持设置时区偏移量。

LOCALTIME 函数

LOCALTIME

查询当前的本地时间。

LOCALTIMESTAMP 函数

LOCALTIMESTAMP

查询当前的本地日期和时间。

NOW 函数

NOW()

查询当前日期和时间。
NOW 函数等同于 CURRENT_TIMESTAMP 函数。

TO_ISO8601 函数

TO_ISO8601(KEY)

将 Date 类型或 Timestamp 类型的日期和时间转换为 ISO8601 格式的日期和时间。

TO_UNIXTIME 函数

TO_UNIXTIME(KEY)

将 Timestamp 类型的日期和时间转化成 UNIX 时间戳。

日期和时间提取函数

DAY 函数

DAY(KEY)

提取日期和时间中的天数,以月为周期。
DAY 函数等同于 DAY_OF_MONTH 函数。

DAY_OF_MONTH 函数

DAY_OF_MONTH(KEY)

提取日期和时间中的天数,以月为周期。
DAY_OF_MONTH 函数等同于 DAY 函数。

DAY_OF_WEEK 函数

DAY_OF_WEEK(KEY)

提取日期和时间中的天数,以星期为周期。
DAY_OF_WEEK 函数等同于 DOW 函数。

DAY_OF_YEAR 函数

DAY_OF_YEAR(KEY)

提取日期和时间中的天数,以年为周期。
DAY_OF_YEAR 函数等同于 DOY 函数。

DOW 函数

DOW(KEY)

提取日期和时间中的天数,以星期为周期。
DOW 函数等同于 DAY_OF_WEEK 函数。

DOY 函数

DOY(KEY)

提取日期和时间中的天数,以年为周期。
DOY 函数等同于 DAY_OF_YEAR 函数。

EXTRACT 函数

EXTRACT(field from KEY)

通过指定的 field,提取日期和时间中的日期或时间部分。

HOUR 函数

HOUR(KEY)

提取日期和时间中的小时数, 24 小时制。

MINUTE 函数

MINUTE(KEY)

提取日期和时间中的分钟数。

MONTH 函数

MONTH(KEY)

提取日期和时间中的月份。

QUARTER 函数

QUARTER(KEY)

返回日期所在季度。

SECOND 函数

SECOND(KEY)

提取日期和时间中的秒数。

TIMEZONE_HOUR 函数

TIMEZONE_HOUR(KEY)

计算时区的小时偏移量。

TIMEZONE_MINUTE 函数

TIMEZONE_MINUTE(KEY)

计算时区的分钟偏移量。

WEEK 函数

WEEK(KEY)

计算目标日期是在一年中的第几周。
WEEK 函数等同于 WEEK_OF_YEAR 函数。

WEEK_OF_YEAR 函数

WEEK_OF_YEAR(KEY)

计算目标日期是在一年中的第几周。
WEEK_OF_YEAR 函数等同于 WEEK 函数。

YEAR 函数

YEAR(KEY)

提取日期和时间中的年份。

YEAR_OF_WEEK 函数

YEAR_OF_WEEK(KEY)

提取目标日期在 ISO 周日历中的年份。
YEAR_OF_WEEK 函数等同于 YOW 函数。

YOW 函数

YOW(KEY)

提取目标日期在 ISO 周日历中的年份。
YOW 函数等同于 YEAR_OF_WEEK 函数。

时间间隔函数

DATE_ADD 函数

DATE_ADD(unit, N, KEY)

在日期和时间中增加或减去指定的时间间隔。

DATE_DIFF 函数

DATE_DIFF(unit, KEY1, KEY2)

计算两个日期或时间点之间的差值。

DATE_TRUNC 函数

DATE_TRUNC(unit, KEY)

根据您指定的时间单位截断日期或时间,并按照毫秒、秒、分钟、小时、日、月或年对齐。

时序补全函数

TIME_SERIES 函数

TIME_SERIES(KEY, window_time, format, padding_data)

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

CURRENT_DATE 函数

CURRENT_DATE 函数用于查询当前日期。

函数语法

  • 语法格式

    CURRENT_DATE
    
  • 返回值说明
    返回值为 Date 类型,格式为 YYYY-MM-DD

函数示例

  • 场景
    查询当前日期。

  • 检索和分析语句

    * | SELECT CURRENT_DATE
    
  • 检索和分析结果
    图片

CURRENT_TIME 函数

CURRENT_TIME 函数用于查询当前时间和时区。

函数语法

  • 语法格式

    CURRENT_TIME
    
  • 返回值说明
    返回值为 Time 类型,格式为 HH:MM:SS.Ms Time_zone

函数示例

  • 场景
    查询当前时间和时区。

  • 检索和分析语句

    * | SELECT CURRENT_TIME
    
  • 检索和分析结果
    图片

CURRENT_TIMESTAMP 函数

CURRENT_TIMESTAMP 函数用于查询当前日期、时间和时区。

函数语法

  • 语法格式

    CURRENT_TIMESTAMP
    
  • 返回值说明
    返回值类型为 Timestamp 类型,格式为 YYYY-MM-DD HH:MM:SS.Ms Time_zone

函数示例

  • 场景
    查询当前日期、时间和时区。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP
    
  • 检索和分析结果
    图片

CURRENT_TIMEZONE 函数

CURRENT_TIMEZONE 函数用于查询当前时区。

语法格式

  • 语法格式

    CURRENT_TIMEZONE()
    
  • 返回值说明
    返回值为 Varchar 类型。

函数示例

  • 场景
    查询当前的时区。

  • 检索和分析语句

    * | SELECT CURRENT_TIMEZONE()
    
  • 检索和分析结果
    图片

DATE 函数

DATE 函数用于提取日期和时间中的日期部分。

函数语法

  • 语法格式

    DATE(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Date、Timestamp 类型。

  • 返回值说明
    返回值为 Date 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 DATE 函数提取日期部分。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP AS timestamp, DATE(CURRENT_TIMESTAMP) AS date
    
  • 检索和分析结果
    图片

DATE_FORMAT 函数

DATE_FORMAT 函数用于将 Timestamp 类型的日期或时间转化为其他指定格式。

函数语法

  • 语法格式

    DATE_FORMAT(KEY, format)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp 类型。

    format

    转换格式。详细说明如下表所示。

  • format 说明

    format

    说明

    E

    星期的缩写。例如 Mon、Tues。

    MMM

    月份的缩写。例如 Jan、Feb。

    M

    月份。取值范围为 1~12。

    dd

    每个月的第几天。十进制格式,取值范围为 01~31。

    d

    每个月的第几天。十进制格式,取值范围为 1~31。

    H

    小时,24 小时制。

    h

    小时,12 小时制。

    mm

    分钟。取值范围为 00~59。

    DDD

    每年的第几天。取值范围为 001~366。

    MMMM

    月份的英文表达,例如 January、February。

    MM

    月份。取值范围为 01~12。

    a

    上午或下午,即 AM 或 PM。

    hh:mm:ss a

    12 小时制的时间,格式为 hh:mm:ss AM/PM

    ss

    秒。取值范围为 00~59。

    HH:mm:ss

    24 小时制的时间,格式为 HH:mm:ss

    ww

    将星期日作为一周的第一天时,ww 表示每年的第几周。取值范围为 01~53。

    EEEE

    星期几的名称。例如 Monday、Tuesday。

    u

    4 位数的年份。例如 2024。

    Y

    4 位数的年份。例如 2024。

    y

    4 位数的年份。例如 2024。

    G

    时代代号。例如 AD(公元后) 或 BC(公元前)。

    L

    一年中的月份(独立形式)。

    F

    每周过去了几天,例如周二为 1,表示本周过去了 1 天。

    k

    一天中的小时数。取值范围为 0~23。

    K

    上午或下午的小时数。取值范围为 0~11。

  • 返回值说明
    返回值为 Varchar 类型。

函数示例

  • 场景
    按照 sli_time 字段值中的月份进行数据聚合。

  • 日志样例
    图片

  • 检索和分析语句

    * | SELECT DATE_FORMAT(sli_time, 'MMM') AS M GROUP BY M
    
  • 检索和分析结果
    图片

DATE_PARSE 函数

DATE_PARSE 函数用于将日期和时间字符串转换为其他指定格式。

函数语法

  • 语法格式

    DATE_PARSE(KEY, format)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为日期和时间字符串。

    format

    转换格式。详细说明如下表所示。

  • format 说明

    format

    说明

    %a

    星期的英文名称缩写。例如 Sun、Sat。

    %b

    月份的英文名称缩写。例如 Jan、Dec。

    %c

    月份。取值范围为 1 ~ 12。

    %D

    每月的第几天,需加上后缀,例如 0th、1st、2nd、3rd。

    %d

    每月的第几天,十进制格式,取值范围为 01 ~ 31。

    %e

    每月的第几天,十进制格式,取值范围为 1 ~ 31。

    %H

    小时,24 小时制。

    %h

    小时,12 小时制。

    %i

    分钟,取值范围为 00 ~ 59。

    %j

    每年的第几天,取值范围为 001 ~ 366。

    %k

    小时,取值范围为 0 ~ 23。

    %l

    小时,取值范围为 1 ~ 12。

    %M

    月份的英文名称,例如 January、December。

    %m

    月份,数值格式,取值范围为 01 ~ 12。

    %p

    AM、PM。

    %r

    时间,12小时制,格式为 hh:mm:ss AM/PM

    %S

    秒,取值范围为 00 ~ 59。

    %s

    秒,取值范围为 00 ~ 59。

    %f

    毫秒,取值范围为 000 ~ 999。

    %T

    时间,24 小时制,格式为 hh:mm:ss

    %v

    每年的第几周,星期一为每周的第一天,取值范围为 01 ~ 53。

    %W

    星期几的英文名称。例如 Sunday、Saturday。

    %Y

    4 位数的年份。例如 2024。

    %y

    2 位数的年份。例如 24。

    %%

    % 的转义字符。

  • 返回值说明
    返回值为 Timestamp 类型。

函数示例

  • 场景
    time_str 字段值转换为 %Y-%m-%d %H:%i:%s 格式。

  • 日志样例

  • 检索和分析语句

    *|SELECT DATE_PARSE(time_str, '%Y-%m-%d %H:%i:%s')
    
  • 检索和分析结果

FROM_ISO8601_DATE 函数

FROM_ISO8601_DATE 函数用于将 ISO8601 格式的日期转化为 Date 类型的日期。

函数语法

  • 语法格式

    FROM_ISO8601_DATE(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 ISO8601 格式。

  • 返回值说明
    返回值为 Date 类型,格式为YYYY-MM-DD

函数示例

  • 场景
    将字符串 2023-01-01 转换为 DATE 类型的日期。

  • 检索和分析语句

    * | SELECT FROM_ISO8601_DATE('2023-01-01')
    
  • 检索和分析结果
    图片

FROM_ISO8601_TIMESTAMP 函数

FROM_ISO8601_TIMESTAMP 函数用于将 ISO8601 格式的日期和时间转化为 Timestamp 类型的日期和时间。

函数语法

  • 语法格式

    FROM_ISO8601_TIMESTAMP(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 ISO8601 格式。

  • 返回值说明
    返回值为 Timestamp 类型,格式为YYYY-MM-DD HH:MM:SS.Ms Time_zone

函数示例

  • 场景
    将字符串 2023-09-06T12:20:35 转换为 Timestamp 类型的日期和时间。

  • 检索和分析语句

    * | SELECT FROM_ISO8601_TIMESTAMP('2023-09-06T12:20:35')
    
  • 检索和分析结果
    图片

FROM_UNIXTIME 函数

FROM_UNIXTIME 函数用于将 UNIX 时间戳转化为 Timestamp 类型的日期和时间。

函数语法

  • 语法格式

    • 转化为无时区的 Timestamp 类型的日期和时间。

      FROM_UNIXTIME(KEY)
      
    • 转化为带时区的 Timestamp 类型的日期和时间。

      FROM_UNIXTIME(KEY,time zone)
      
    • 转化为带时区的 Timestamp 类型的日期和时间,且支持设置时区偏移量。

      FROM_UNIXTIME(KEY, hours, minutes)
      
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 UNIX 时间戳。

    time zone

    时区,例如 Asia/shanghai

    hours

    时区的小时偏移量,例如 +07、-09。

    minutes

    时区的分钟偏移量,例如 +30、-45。

  • 返回值说明
    返回值为 Timestamp 类型,格式为 YYYY-MM-DD HH:MM:SS.MsYYYY-MM-DD HH:MM:SS.Ms Time_zone

函数示例

  • 场景
    __time__ 字段的值转化为带时区的 Timestamp 类型的日期和时间。

  • 日志样例

  • 检索和分析语句

    * | SELECT FROM_UNIXTIME(__time__/1000,'Asia/shanghai')
    
  • 检索和分析结果

LOCALTIME 函数

LOCALTIME 函数用于查询当前的本地时间。

函数语法

  • 语法格式

    LOCALTIME
    
  • 返回值说明
    返回值为 Time 类型,格式为 HH:MM:SS.Ms

函数示例

  • 场景
    查询本地时间。

  • 检索和分析语句

    * | SELECT LOCALTIME
    
  • 检索和分析结果
    图片

LOCALTIMESTAMP 函数

LOCALTIMESTAMP 函数用于查询当前的本地日期和时间。

语法格式

  • 语法格式

    LOCALTIMESTAMP
    
  • 返回值说明
    返回值为 Timestamp 类型,格式为YYYY-MM-DD HH:MM:SS.Ms

函数示例

  • 场景
    查询本地的日期和时间。

  • 检索和分析语句

    * | SELECT LOCALTIMESTAMP
    
  • 检索和分析结果
    图片

NOW 函数

NOW 函数用于返回当前日期和时间。NOW 函数等同于 CURRENT_TIMESTAMP 函数。

函数语法

  • 语法格式

    NOW()
    
  • 返回值说明
    函数的返回值类型为 Timestamp 类型。格式为 YYYY-MM-DD HH:MM:SS.Ms Time_zone

函数示例

  • 场景
    查询当前日期和时间。

  • 检索和分析语句

    * | SELECT NOW()
    
  • 检索和分析结果
    图片

TO_ISO8601 函数

TO_ISO8601 函数用于将 Date 类型或 Timestamp 类型的日期和时间转换为 ISO8601 格式的日期和时间。

函数语法

  • 语法格式

    TO_ISO8601(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Date、Timestamp 类型。

  • 返回值说明
    返回值为 Varchar 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 TO_ISO8601 函数将当前的日期和时间转换为 ISO8601 格式。

  • 检索和分析语句

    * | SELECT TO_ISO8601(CURRENT_TIMESTAMP) AS ISO8601
    
  • 检索和分析结果
    图片

TO_UNIXTIME 函数

TO_UNIXTIME 函数用于将 Timestamp 类型的日期和时间转化成 UNIX 时间戳。

函数语法

  • 语法格式

    TO_UNIXTIME(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp 类型。

  • 返回值说明
    返回值为 Double 类型。

函数示例

  • 场景
    查询当前时间对应的 UNIX 时间戳。

  • 检索和分析语句

    * | SELECT TO_UNIXTIME(NOW())
    
  • 检索和分析结果
    图片

DAY 函数

DAY 函数用于提取日期和时间中的天数,以月为周期。DAY 函数等同于 DAY_OF_MONTH 函数。

函数语法

  • 语法格式

    DAY(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型,范围为1~31。

函数示例

  • 场景
    使用 CURRENT_DATE 函数获取当前日期,然后使用 DAY 函数提取当前日期为本月的第几天。

  • 检索和分析语句

    * | SELECT CURRENT_DATE, DAY(CURRENT_DATE)
    
  • 检索和分析结果
    图片

DAY_OF_MONTH 函数

DAY_OF_MONTH 函数用于提取日期和时间中的天数,以月为周期。DAY_OF_MONTH 函数等同于 DAY 函数。

函数语法

  • 语法格式

    DAY_OF_MONTH(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_DATE 函数获取当前日期,然后使用 DAY_OF_MONTH 函数提取当前日期为本月的第几天。

  • 检索和分析语句

    * | SELECT CURRENT_DATE, DAY_OF_MONTH(CURRENT_DATE)
    
  • 检索和分析结果
    图片

DAY_OF_WEEK 函数

DAY_OF_WEEK 函数用于提取日期和时间中的天数,以星期为周期。

函数语法

  • 语法格式

    DAY_OF_WEEK(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_DATE 函数获取当前日期,然后使用 DAY_OF_WEEK 函数提取当前日期为本周的第几天。

  • 检索和分析语句

    * | SELECT CURRENT_DATE, DAY_OF_WEEK(CURRENT_DATE)
    
  • 检索和分析结果
    图片

DAY_OF_YEAR 函数

DAY_OF_YEAR 函数用于提取日期和时间中的天数,以年为周期。

函数语法

  • 语法格式

    DAY_OF_YEAR(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_DATE 函数获取当前日期,然后使用 DAY_OF_YEAR 函数提取当前日期为本年的第几天。

  • 检索和分析语句

    * | SELECT CURRENT_DATE, DAY_OF_YEAR(CURRENT_DATE)
    
  • 检索和分析结果
    图片

DOW 函数

DOW 函数用于提取日期和时间中的天数,以星期为周期。DOW 函数等同于 DAY_OF_WEEK 函数。

函数语法

  • 语法格式

    DOW(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_DATE 函数获取当前日期,然后使用 DOW 函数提取当前日期为本周的第几天。

  • 检索和分析语句

    * | SELECT CURRENT_DATE, DOW(CURRENT_DATE)
    
  • 检索和分析结果
    图片

DOY 函数

DOY 函数用于提取日期和时间中的天数,以年为周期。DOY 函数等同于 DAY_OF_YEAR 函数。

函数语法

  • 语法格式

    DOY(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_DATE 函数获取当前日期,然后使用 DOY 函数提取当前日期为本年的第几天。

  • 检索和分析语句

    * | SELECT CURRENT_DATE, DOY(CURRENT_DATE)
    
  • 检索和分析结果
    图片

EXTRACT 函数

EXTRACT 函数通过指定的 field,提取日期和时间中的日期或时间部分。

函数语法

  • 语法格式

    EXTRACT(field from KEY)
    
  • 参数说明

    参数

    说明

    field

    取值为 year、quarter、month、week、day、day_of_month、day_of_week、dow、day_of_year、doy、year_of_week、yow、hour、minute、second、timezone_hour、timezone_minute。

    KEY

    字段,表达式,其值为 Date、Time、Timestamp、interval (actual varchar(9)) 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_DATE 函数获取当前日期,然后使用 EXTRACT 函数提取当前日期中的年份。

  • 检索和分析语句

    * | SELECT CURRENT_DATE, EXTRACT(year from CURRENT_DATE)
    
  • 检索和分析结果
    图片

HOUR 函数

HOUR 函数用于提取日期和时间中的小时数,24 小时制。

函数语法

  • 语法格式

    HOUR(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 HOUR 函数提取当前时间的小时数。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP, HOUR(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

MINUTE 函数

MINUTE 函数用于提取日期和时间中的分钟数。

函数语法

  • 语法格式

    MINUTE(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 MINUTE 函数提取当前时间的分钟数。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP, MINUTE(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

MONTH 函数

MONTH 函数用于提取日期和时间中的月份。

函数语法

  • 语法格式

    MONTH(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 MONTH 函数提取当前日期所属的月份。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP, MONTH(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

QUARTER 函数

QUARTER 函数用于返回日期所在季度。

函数语法

  • 语法格式

    QUARTER(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型,例如 1 表示第一个季度。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 QUARTER 函数计算当前日期所在季度。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP, QUARTER(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

SECOND 函数

SECOND 函数用于提取日期和时间中的秒数。

函数语法

  • 语法格式

    SECOND(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 SECOND 函数提取当前时间的秒数。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP,SECOND(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

TIMEZONE_HOUR 函数

TIMEZONE_HOUR 函数用于计算时区的小时偏移量。

函数语法

  • 语法格式

    TIMEZONE_HOUR(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 TIMEZONE_HOUR 函数计算当前时间所属时区的小时偏移量。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP, TIMEZONE_HOUR(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

TIMEZONE_MINUTE 函数

TIMEZONE_MINUTE 函数用于计算时区的分钟偏移量。

函数语法

  • 语法格式

    TIMEZONE_MINUTE(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 TIMEZONE_MINUTE 函数计算当前时间所属时区的分钟偏移量。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP,TIMEZONE_MINUTE(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

WEEK 函数

WEEK 函数用于计算目标日期是在一年中的第几周。WEEK 函数等同于 WEEK_OF_YEAR 函数。

函数语法

  • 语法格式

    WEEK(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 WEEK 函数计算当前日期是一年中的第几周。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP, WEEK(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

WEEK_OF_YEAR 函数

WEEK_OF_YEAR 函数用于计算目标日期是在一年中的第几周。WEEK_OF_YEAR 函数等同于 WEEK 函数。

语法格式

  • 语法格式

    WEEK_OF_YEAR(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用CURRENT_TIMESTAMP函数获取当前日期和时间,然后使用WEEK_OF_YEAR函数计算当前日期是一年中的第几周。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP, WEEK_OF_YEAR(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

YEAR 函数

YEAR 函数用于提取日期和时间中的年份。

函数语法

  • 语法格式

    YEAR(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 YEAR 函数提取当前日期中的年份。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP,YEAR(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

YEAR_OF_WEEK 函数

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

函数语法

  • 语法格式

    YEAR_OF_WEEK(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 YEAR_OF_WEEK 函数返回当前日期在ISO周日历中的年份。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP,YEAR_OF_WEEK(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

YOW 函数

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

函数语法

  • 语法格式

    YOW(KEY)
    
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Timestamp、Date 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    使用 CURRENT_TIMESTAMP 函数获取当前日期和时间,然后使用 YOW 函数返回当前日期在 ISO 周日历中的年份。

  • 检索和分析语句

    * | SELECT CURRENT_TIMESTAMP, YOW(CURRENT_TIMESTAMP)
    
  • 检索和分析结果
    图片

DATE_ADD 函数

DATE_ADD 函数用于在日期和时间中增加或减去指定的时间间隔。

函数语法

  • 语法格式

    DATE_ADD(unit, n, KEY)
    
  • 参数说明

    参数

    说明

    unit

    时间单位,取值为 millisecond、second、minute、hour、day、week、month、quarter、year。详细说明请参考unit 说明

    n

    时间间隔。

    KEY

    字段、表达式,其值为 Timestamp 类型。

  • 返回值说明
    返回值类型为 Timestamp 类型。

函数示例

  • 场景
    查询当前时间戳,然后减 1 得到昨天同时间点的时间戳。

  • 检索和分析语句

    * | SELECT TO_UNIXTIME(DATE_ADD('DAY', -1, CURRENT_TIMESTAMP))
    
  • 检索和分析结果
    图片

DATE_DIFF 函数

DATE_DIFF 函数用于计算两个日期或时间点之间的差值。

函数语法

  • 语法格式

    DATE_DIFF(unit, KEY1, KEY2)
    
  • 参数说明如下:

    参数

    说明

    unit

    时间单位,取值为millisecond、second、minute、hour、day、week、month、quarter、year。更多信息,请参见unit 说明

    KEY

    字段、表达式,其值为 Timestamp 类型。

  • 返回值说明
    返回值为 Bigint 类型。

函数示例

  • 场景
    time 字段值转换为 Timestamp 类型,然后计算其与当前时间的小时差。

  • 日志样例
    图片

  • 检索和分析语句

    * | SELECT DATE_DIFF('hour', CAST(time AS TIMESTAMP), CURRENT_TIMESTAMP) AS "时间差(小时)"
    
  • 检索和分析结果

DATE_TRUNC 函数

DATE_TRUNC 函数会根据您指定的时间单位截断日期或时间,并按照毫秒、秒、分钟、小时、日、月或年对齐。

函数语法

  • 语法格式

    DATE_TRUNC(unit, KEY)
    

    参数说明

    参数

    说明

    unit

    时间单位,取值为 millisecond、second、minute、hour、day、week、month、quarter、year。详细说明请参考unit 说明

    KEY

    字段、表达式,其值为 UNIX 时间戳,单位为秒。

函数示例

  • 场景
    按照字段 sli_time 中的分钟维度进行数据聚合。

  • 日志样例
    图片

  • 检索和分析语句

    * | SELECT DATE_TRUNC('minute', sli_time) AS time GROUP BY time
    
  • 检索与分析结果
    图片

TIME_SERIES 函数

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

说明

TIME_SERIES 函数根据固定的时间间隔对日志数据进行分组聚合、统计,使用时必须搭配 GROUP BY 语法和 ORDER BY 语法,且 ORDER BY 语法不支持倒序(DESC)排序方式。

函数语法

  • 语法格式

    TIME_SERIES(KEY, window_time, format, padding_data)
    
  • 参数说明

    参数

    说明

    KEY

    表示时间的字段,例如 __time__。该字段的值应为 LONG 类型的 UNIX 时间戳(毫秒)。

    window_time

    窗口大小,即时间间隔。单位为 s(秒)、m(分)、h(小时)、d(天)。例如 10h 表示 10 小时、5d 表示 5 天。

    format

    返回结果的时间格式。详细说明如下表所示。

    padding_data

    用于补全的内容。支持的设置包括:

    • 0:将缺失的字段值统一设置为 0。
    • null:将缺失的字段值统一设置为 null。
    • last:将缺失的字段值设置为上一个时间点对应的值。
    • next:将缺失的字段值设置为下一个时间点对应的值。
    • avg:将缺失的字段值设置为前后两个时间点的平均值。
  • format 说明

    format

    说明

    %a

    星期的英文名称缩写。例如 Sun、Sat。

    %b

    月份的英文名称缩写。例如 Jan、Dec。

    %c

    月份。取值范围为 1 ~ 12。

    %D

    每月的第几天,需加上后缀,例如 0th、1st、2nd、3rd。

    %d

    每月的第几天,十进制格式,取值范围为 01 ~ 31。

    %e

    每月的第几天,十进制格式,取值范围为 1 ~ 31。

    %H

    小时,24 小时制。

    %h

    小时,12 小时制。

    %i

    分钟,取值范围为 00 ~ 59。

    %j

    每年的第几天,取值范围为 001 ~ 366。

    %k

    小时,取值范围为 0 ~ 23。

    %l

    小时,取值范围为 1 ~ 12。

    %M

    月份的英文名称,例如 January、December。

    %m

    月份,数值格式,取值范围为 01 ~ 12。

    %p

    AM、PM。

    %r

    时间,12小时制,格式为 hh:mm:ss AM/PM

    %S

    秒,取值范围为 00 ~ 59。

    %s

    秒,取值范围为 00 ~ 59。

    %f

    毫秒,取值范围为 000 ~ 999。

    %T

    时间,24 小时制,格式为 hh:mm:ss

    %v

    每年的第几周,星期一为每周的第一天,取值范围为 01 ~ 53。

    %W

    星期几的英文名称。例如 Sunday、Saturday。

    %Y

    4 位数的年份。例如 2024。

    %y

    2 位数的年份。例如 24。

    %%

    % 的转义字符。

  • 返回值说明
    返回值为 Varchar 类型。

函数示例

  • 场景
    按照一个小时的时间粒度进行数据补全,将缺失的值统一设置为 0。

  • 日志样例
    图片

  • 检索和分析语句

    * | SELECT TIME_SERIES(sli_time, '1h', '%Y-%m-%d %H:%i:%s', '0') AS time, COUNT(*) AS num GROUP BY time ORDER BY time
    
  • 检索与分析结果
    图片

unit 说明

unit

说明

millisecond

毫秒

second

minute

分钟

hour

小时

day

week

month

quarter

季度

year