添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
日期和时间函数

日期和时间函数

更新时间:

日志服务提供时间函数、日期函数、日期和时间提取函数、时间间隔函数和时序补全函数,支持对日志中的日期和时间进行格式转换,分组聚合等处理。本文介绍日期和时间函数的基本语法及示例。

日志服务支持如下日期和时间函数。

重要
  • 日志服务中的日志时间戳精确到秒,所以配置时间格式( format )时,只需配置到秒,无需配置毫秒、微秒等信息。

  • 只需为时间字符串中的时间部分配置时间格式( format ),其他内容(例如时区)无需配置时间格式。

  • 日志服务中的每条日志都包含保留字段 __time__ ,该字段的值为UNIX时间戳格式,例如1592374067,代表2020-06-17 14:07:47。

  • 在日志服务分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如 'status' 表示字符串status, status "status" 表示日志字段status。

函数类型

函数名称

语法

说明

支持SQL

支持SPL

日期和时间函数

current_date函数

current_date

返回当前日期。

×

current_time函数

current_time

返回当前时间和时区。

×

current_timestamp函数

current_timestamp

返回当前日期、时间和时区。

×

current_timezone函数

current_timezone()

返回当前时区。

×

date函数

date( x )

返回日期和时间表达式中的日期部分。

×

date_format函数

date_format( x , format )

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

date_parse函数

date_parse( x , format )

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

from_iso8601_date函数

from_iso8601_date( x )

将ISO8601格式的日期表达式转化为date类型的日期表达式。

×

from_iso8601_timestamp函数

from_iso8601_timestamp( x )

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

×

from_unixtime函数

from_unixtime( x )

将UNIX时间戳转化为无时区的timestamp类型的日期和时间表达式。

from_unixtime( x , time zone )

将UNIX时间戳转化为带时区的timestamp类型的日期和时间表达式。

×

from_unixtime( x , hours , minutes )

将UNIX时间戳转化为带时区的timestamp类型的日期和时间表达式,其中 hours minutes 为时区偏移量。

×

localtime函数

localtime

返回本地时间。

×

localtimestamp函数

localtimestamp

返回本地日期和时间。

×

now函数

now()

返回当前日期和时间。

now函数等同于current_timestamp函数。

×

to_iso8601函数

to_iso8601( x )

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

×

to_unixtime函数

to_unixtime( x )

将timestamp类型的日期和时间表达式转化成UNIX时间戳。

日期和时间提取函数

day函数

day( x )

提取日期和时间表达式中的天数,按月计算。

day函数等同于day_of_month函数。

×

day_of_month函数

day_of_month( x )

提取日期和时间表达式中的天数,按月计算。

day_of_month函数等同于day函数。

×

day_of_week函数

day_of_week( x )

提取日期和时间表达式中的天数,按周计算。

day_of_week函数等同于dow函数。

day_of_year函数

day_of_year( x )

提取日期和时间表达式中的天数,按年计算。

day_of_year函数等同于doy函数。

dow函数

dow( x )

提取日期和时间表达式中的天数,按周计算。

dow函数等同于day_of_week函数。

doy函数

doy( x )

提取日期和时间表达式中的天数,按年计算。

doy函数等同于day_of_year函数。

extract函数

extract( field from x )

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

×

hour函数

hour( x )

提取日期和时间表达式中的小时数,按24小时制计算。

minute函数

minute( x )

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

month函数

month( x )

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

quarter函数

quarter( x )

计算目标日期所属的季度。

second函数

second( x )

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

timezone_hour函数

timezone_hour( x )

计算时区的小时偏移量。

×

timezone_minute函数

timezone_minute( x )

计算时区的分钟偏移量。

×

week函数

week( x )

计算目标日期是在一年中的第几周。

week函数等同于week_of_year函数。

×

week_of_year函数

week_of_year( x )

计算目标日期是在一年中的第几周。

week_of_year函数等同于week函数。

×

year函数

year( x )

提取目标日期中的年份。

year_of_week函数

year_of_week( x )

提取目标日期在ISO周日历中的年份。

year_of_week函数等同于yow函数。

yow函数

yow( x )

提取目标日期在ISO周日历中的年份。

yow函数等同于year_of_week函数。

时间间隔函数

date_trunc函数

date_trunc(unit, x )

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

×

date_add函数

date_add( unit , N , x )

x 上加上N个时间单位(unit)。

date_diff函数

date_diff( unit , x , y )

返回两个时间表达式之间的时间差值,例如计算 x y 之间相差几个时间单位(unit)。

时序补全函数

time_series函数

time_series( x , window , format , padding_data )

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

×

current_date函数

current_date函数用于返回当前日期,格式为YYYY-MM-DD。

语法

current_date

返回值类型

date类型。

示例

查询昨天的日志。

  • 查询和分析语句( 调试

    * |
    SELECT
    FROM  log
    WHERE
      __time__ < to_unixtime(current_date)
      AND __time__ > to_unixtime(date_add('day', -1, current_date))
  • 查询和分析结果 current_date

current_time函数

current_time函数用于返回当前时间和时区,格式为HH:MM:SS.Ms Time_zone。

语法

current_time

返回值类型

time类型。

示例

查询当前时间和时区。

  • 查询和分析语句( 调试

    * | select current_time
  • 查询和分析结果 current_time

current_timestamp函数

current_timestamp函数用于返回当前日期、时间和时区,格式为YYYY-MM-DD HH:MM:SS.Ms Time_zone。

语法

current_timestamp

返回值类型

timestamp类型。

示例

查询昨天的日志。

  • 查询和分析语句( 调试

    * |
    SELECT
    FROM  log
    WHERE
      __time__ < to_unixtime(current_timestamp)
      AND __time__ > to_unixtime(date_add('day', -1, current_timestamp))
  • 查询和分析结果 current_date

current_timezone函数

current_timezone函数用于返回当前时区。

语法

current_timezone()

返回值类型

varchar类型。

示例

查询当前的时区。

  • 查询和分析语句( 调试

    * | select current_timezone()
  • 查询和分析结果 current_timezone

date函数

date函数用于提取日期和时间表达式中的日期部分。date函数等同于 cast(x as date) 。更多信息,请参见 类型转换函数

语法

date(x)

参数说明

参数

说明

x

参数值为date、timestamp类型。

返回值类型

date类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用date函数提取日期部分。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp, date(current_timestamp)
  • 查询和分析结果 date

date_format函数

date_format函数用于将timestamp类型的日期和时间表达式转换为指定格式的日期和时间表达式。

语法

date_format(x, format)

参数说明

参数

说明

x

参数值为timestamp类型的日期和时间表达式。

format

日期和时间表达式的转换格式。更多信息,请参见 format说明

返回值类型

varchar类型。

示例

计算Nginx请求状态及数量,并根据时间顺序展示。首先通过date_trunc函数将日志时间按照分钟对齐,再使用date_format函数转换为 %H:%i 格式,然后计算每分钟内每个状态码对应的请求数量,并以流图展示查询和分析结果。

  • 查询和分析语句( 调试

    * |
    SELECT
      date_format(date_trunc('minute', __time__), '%H:%i') AS time,
      COUNT(1) AS count,
      status
    GROUP BY
      time,
      status
    ORDER BY
      time
  • 查询和分析结果 date_format

date_parse函数

date_parse函数用于将日期和时间字符串转换为指定格式的timestamp类型的日期和时间表达式。

语法

date_parse(x, format)

参数说明

参数

说明

x

参数值为日期和时间字符串。

format

日期和时间表达式的转换格式。更多信息,请参见 format说明

返回值类型

timestamp类型。

示例

StartTime 字段值和 EndTime 字段值转换为timestamp类型,并计算两者的时间差。

  • 查询和分析语句

    *|
    SELECT
        date_parse(StartTime, '%Y-%m-%d %H:%i') AS "StartTime",
        date_parse(EndTime, '%Y-%m-%d %H:%i') AS "EndTime",
        date_diff('hour', StartTime, EndTime) AS "时间差(小时)"
  • 查询和分析结果  date_parse(

from_iso8601_date函数

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

语法

from_iso8601_date(x)

参数说明

参数

说明

x

参数值为ISO8601格式的日期表达式。

返回值类型

date类型。

示例

time 字段的值转换为date类型的日期表达式。

  • 字段样例

    time:2020-05-03
  • 查询和分析语句

    * | select from_iso8601_date(time)
  • 查询和分析结果 from_iso8601_date

from_iso8601_timestamp函数

from_iso8601_timestamp函数用于将ISO8601格式的日期和时间表达式转化为timestamp类型的日期和时间表达式,格式为YYYY-MM-DD HH:MM:SS.Ms Time_zone。

语法

from_iso8601_timestamp(x)

参数说明

参数

说明

x

参数值为ISO8601格式的日期和时间表达式。

返回值类型

timestamp类型。

示例

time 字段的值转换为timestamp类型的日期和时间表达式。

  • 字段样例

    time:2020-05-03T17:30:08
  • 查询和分析语句

    * | select from_iso8601_timestamp(time)
  • 查询和分析结果 from_iso8601_timestamp

from_unixtime函数

from_unixtime函数用于将UNIX时间戳转化为timestamp类型的日期和时间表达式,格式为YYYY-MM-DD HH:MM:SS.Ms或YYYY-MM-DD HH:MM:SS.Ms Time_zone。

语法

  • 转化为无时区的timestamp类型的日期和时间表达式

    from_unixtime(x)
  • 转化为带时区的timestamp类型的日期和时间表达式

    from_unixtime(x,time zone)
  • 转化为带时区的timestamp类型的日期和时间表达式,其中 hours minutes 为时区偏移量。

    from_unixtime(x, hours, minutes)

参数说明

参数

说明

x

参数值为UNIX时间戳。

time zone

时区,例如Asia/shanghai。

hours

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

minutes

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

返回值类型

timestamp类型。

示例

time 字段的值转化为带时区的timestamp类型的日期和时间表达式。

  • 字段样例

    time:1626774758
  • 查询和分析语句

    * | select from_unixtime(time,'Asia/shanghai')
  • 查询和分析结果 from_unixtime

localtime函数

localtime函数用于返回本地时间,格式为HH:MM:SS.Ms。

语法

localtime

返回值类型

time类型。

示例

查询本地时间。

  • 查询和分析语句( 调试

    * | select localtime
  • 查询和分析结果 localtime

localtimestamp函数

localtimestamp函数用于返回本地的日期和时间,格式为YYYY-MM-DD HH:MM:SS.Ms Time_zone。

语法

localtimestamp

返回值类型

timestamp类型。

示例

查询昨天的日志。

  • 查询和分析语句( 调试

    * |
    SELECT
    FROM  log
    WHERE
      __time__ < to_unixtime(localtimestamp)
      AND __time__ > to_unixtime(date_add('day', -1, localtimestamp))
  • 查询和分析结果 current_date

now函数

now函数用于返回当前日期和时间,格式为YYYY-MM-DD HH:MM:SS.Ms Time_zone。now函数等同于current_timestamp函数。

语法

now()

返回值类型

timestamp类型。

示例

查询昨天的日志。

  • 查询和分析语句( 调试

    * |
    SELECT
    FROM  log
    WHERE
      __time__ < to_unixtime(now())
      AND __time__ > to_unixtime(date_add('day', -1, now()))
  • 查询和分析结果 current_date

to_iso8601函数

to_iso8601函数用于将date类型或timestamp类型的日期和时间表达式转换为ISO8601格式的日期和时间表达式。

语法

to_iso8601(x)

参数说明

参数

说明

x

参数值为date、timestamp类型。

返回值类型

varchar类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用to_iso8601函数将当前的日期和时间表达式转换为ISO8601格式的日期和时间表达式。

  • 查询和分析语句( 调试

    * | select to_iso8601(current_timestamp) AS ISO8601
  • 查询和分析结果 to_iso8601

to_unixtime函数

to_unixtime函数用于将timestamp类型的日期和时间表达式转化成UNIX时间戳。

语法

to_unixtime(x)

参数说明

参数

说明

x

参数值为timestamp类型的日期和时间表达式。

返回值类型

double类型。

示例

查询昨天的日志。

  • 查询和分析语句( 调试

    * |
    SELECT
    FROM  log
    WHERE
      __time__ < to_unixtime(now())
      AND __time__ > to_unixtime(date_add('day', -1, now()))
  • 查询和分析结果 current_date

day函数

day函数用于提取日期和时间表达式中的天数,按月计算。day函数等同于day_of_month函数。

语法

day(x)

参数说明

参数

说明

x

参数值为timestamp、date类型。

返回值类型

bigint类型。

示例

使用current_date函数获取当前日期,然后使用day函数提取当前日期为本月的第几天。

  • 查询和分析语句( 调试

    * | SELECT current_date, day(current_date)
  • 查询和分析结果 day

day_of_month函数

day_of_month函数用于提取日期和时间表达式中的天数,按月计算。day_of_month函数等同于day函数。

语法

day_of_month(x)

参数说明

参数

说明

x

参数值为timestamp、date类型。

返回值类型

bigint类型。

示例

使用current_date函数获取当前日期,然后使用day_of_month函数提取当前日期为本月的第几天。

  • 查询和分析语句( 调试

    * | SELECT current_date, day_of_month(current_date)
  • 查询和分析结果 day

day_of_week函数

day_of_week函数用于提取日期和时间表达式中的天数,按周计算。

语法

day_of_week(x)

参数说明

参数

说明

x

参数值为timestamp、date类型。

返回值类型

bigint类型。

示例

使用current_date函数获取当前日期,然后使用day_of_week函数提取当前日期为本周的第几天。

  • 查询和分析语句( 调试

    * | SELECT current_date, day_of_week(current_date)
  • 查询和分析结果 day_of_week

day_of_year函数

day_of_year函数用于提取日期和时间表达式中的天数,按年计算。

语法

day_of_year(x)

参数说明

参数

说明

x

参数值为timestamp、date类型。

返回值类型

bigint类型。

示例

使用current_date函数获取当前日期,然后使用day_of_year函数提取当前日期为本年的第几天。

  • 查询和分析语句( 调试

    * | SELECT current_date, day_of_year(current_date)
  • 查询和分析结果 day_of_year

dow函数

dow函数用于提取日期和时间表达式中的天数,按周计算。dow函数等同于day_of_week函数。

语法

dow(x)

参数说明

参数

说明

x

参数值为timestamp、date类型。

返回值类型

bigint类型。

示例

使用current_date函数获取当前日期,然后使用dow函数提取当前日期为本周的第几天。

  • 查询和分析语句( 调试

    * | SELECT current_date, dow(current_date)
  • 查询和分析结果 day_of_week

doy函数

doy函数用于提取日期和时间表达式中的天数,按年计算。doy函数等同于day_of_year函数。

语法

doy(x)

参数说明

参数

说明

x

参数值为timestamp、date类型。

返回值类型

bigint类型。

示例

使用current_date函数获取当前日期,然后使用doy函数提取当前日期为本年的第几天。

  • 查询和分析语句( 调试

    * | SELECT current_date, doy(current_date)
  • 查询和分析结果 day_of_year

extract函数

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

语法

extract(field from x)

参数说明

参数

说明

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。

x

参数值为date、time、timestamp、interval (actual varchar(9)) 类型。

返回值类型

bigint类型。

示例

使用current_date函数获取当前日期,然后使用extract函数提取当前日期中的年份。

  • 查询和分析语句( 调试

    * | SELECT extract(year from current_date)
  • 查询和分析结果 extract

hour函数

hour函数用于提取日期和时间表达式中的小时数,按24小时制计算。

语法

hour(x)

参数说明

参数

说明

x

参数值为timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用hour函数提取当前时间的小时数。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp, hour(current_timestamp)
  • 查询和分析结果 hour

minute函数

minute函数用于提取日期和时间表达式中的分钟数。

语法

minute(x)

参数说明

参数

说明

x

参数值为timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用minute函数提取当前时间的分钟数。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp, minute(current_timestamp)
  • 查询和分析结果 minute

month函数

month函数用于提取日期和时间表达式中的月份。

语法

month(x)

参数说明

参数

说明

x

参数值为date、timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用month函数提取当前日期所属的月份。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp, month(current_timestamp)
  • 查询和分析结果 month

quarter函数

quarter函数用于返回日期所属的季度。

语法

quarter(x)

参数说明

参数

说明

x

参数值为date、timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用quarter函数计算当前日期所属的季度。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp,quarter(current_timestamp)
  • 查询和分析结果 quarter

second函数

second函数用于提取日期和时间表达式中的秒数。

语法

second(x)

参数说明

参数

说明

x

参数值为timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用second函数提取当前时间的秒数。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp,second(current_timestamp)
  • 查询和分析结果 second

timezone_hour函数

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

语法

timezone_hour(x)

参数说明

参数

说明

x

参数值为timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用timezone_hour函数计算当前时间所属时区的小时偏移量。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp, timezone_hour(current_timestamp)
  • 查询和分析结果 timezone_hour

timezone_minute函数

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

语法

timezone_minute(x)

参数说明

参数

说明

x

参数值为timestamp类型。

返回值类型

bigint类型。

示例

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

  • 查询和分析语句( 调试

    * | SELECT current_timestamp,timezone_minute(current_timestamp)
  • 查询和分析结果 timezone_minute

week函数

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

语法

week(x)

参数说明

参数

说明

x

参数值为date、timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用week函数计算当前日期是一年中的第几周。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp, week(current_timestamp)
  • 查询和分析结果 week

week_of_year函数

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

语法

week_of_year(x)

参数说明

参数

说明

x

参数值为date、timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用week_of_year函数计算当前日期是一年中的第几周。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp, week_of_year(current_timestamp)
  • 查询和分析结果 week

year函数

year函数用于提取目标日期中的年份。

语法

year(x)

参数说明

参数

说明

x

参数值为date、timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用year函数提取当前日期中的年份。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp,year(current_timestamp)
  • 查询和分析结果 year

year_of_week函数

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

语法

year_of_week(x)

参数说明

参数

说明

x

参数值为date、timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用year_of_week函数返回当前日期在ISO周日历中的年份。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp,year_of_week(current_timestamp)
  • 查询和分析结果 year_of_week

yow函数

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

语法

yow(x)

参数说明

参数

说明

x

参数值为date、timestamp类型。

返回值类型

bigint类型。

示例

使用current_timestamp函数获取当前日期和时间,然后使用yow函数返回当前日期在ISO周日历中的年份。

  • 查询和分析语句( 调试

    * | SELECT current_timestamp, yow(current_timestamp)
  • 查询和分析结果 year_of_week

date_trunc函数

date_trunc函数会根据您指定的时间单位截断日期和时间表达式,并按照毫秒、秒、分钟,小时、日、月或年对齐。该函数常用于需要按照时间进行统计分析的场景。

语法

date_trunc(unit, x)

参数说明

参数

说明

unit

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

x

参数值为日期和时间表达式。

说明

date_trunc函数只能按照固定的时间间隔统计(例如每分钟、每小时等)。如果您需要按照灵活的时间维度统计,请使用数学取模方法进行分组,例如统计每5分钟的数据。

* | SELECT count(1) AS pv,  __time__ - __time__ %300 AS time GROUP BY time LIMIT 100

返回值类型

与参数值的类型一致。

示例

按照每分钟的时间粒度计算请求时间的平均值,并按照时间进行分组和排序。

  • 查询和分析语句( 调试

    * |
    SELECT
      date_trunc('minute', __time__) AS time,
      truncate (avg(request_time)) AS avg_time,
      current_date AS date
    GROUP BY
    ORDER BY
      time DESC
    LIMIT
      100
  • 查询和分析结果 date_trunc

date_add函数

date_add函数用于在日期或时间中添加或减去指定的时间间隔。

语法

date_add(unit, n, x)

参数说明

参数

说明

unit

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

n

时间间隔。

x

参数值为timestamp类型日期和时间表达式。

返回值类型

timestamp类型。

示例

查询昨天的日志。

  • 查询和分析语句( 调试

    * |
    SELECT
    FROM  log
    WHERE
      __time__ < to_unixtime(current_timestamp)
      AND __time__ > to_unixtime(date_add('day', -1, current_timestamp))
  • 查询和分析结果 current_date

date_diff函数

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

语法

date_diff(unit, x, y)

参数说明

参数

说明

unit

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

x

参数值为timestamp类型日期和时间表达式。

y

参数值为timestamp类型日期和时间表达式。

返回值类型

bigint类型。

示例

通过 UsageStartTime 字段和 UsageEndTime 字段计算服务器使用的总时长。

  • 查询和分析语句

    * | SELECT  date_diff('hour', UsageStartTime, UsageEndTime) AS "时间差(小时)"
  • 查询和分析结果 date_diff

time_series函数

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

重要

time_series函数必须搭配GROUP BY语法和ORDER BY语法使用,且ORDER BY语法不支持DESC排序方式。

语法

time_series(x, window_time, format, padding_data)

参数说明

参数

说明

x

时间列,例如 __time__ 。时间列的值为long类型或timestamp类型。

window_time

窗口大小,单位为s(秒)、m(分)、h(小时)、d(天)。例如2h、5m、3d。

format

返回结果的时间格式。更多信息,请参见 format说明

padding_data

补全的内容。包括:

  • 0:将缺失的值设置为0。

  • null:将缺失的值设置为null。

  • last:将缺失的值设置了上一个时间点对应的值。

  • next:将缺失的值设置了下一个时间点对应的值。

  • avg:将缺失的值设置为前后两个时间点的平均值。

返回值类型

varchar类型。

示例

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

  • 查询和分析语句( 调试

    * | select time_series(__time__, '2h', '%Y-%m-%d %H:%i:%s', '0')  as time, count(*) as num from log group by time order by time                        
  • 查询和分析结果 时间补全函数示例图

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位数的年份。例如2020。

%y

2位数的年份。例如20。

%%

%的转义字符。

unit说明

unit

说明

millisecond

毫秒

second

minute

分钟

hour

小时

day

week

month

quarter

季度

year