日志服务提供时间函数、日期函数、日期和时间提取函数、时间间隔函数和时序补全函数,支持对日志中的日期和时间进行格式转换,分组聚合等处理。本文介绍日期和时间函数的基本语法及示例。
日志服务支持如下日期和时间函数。
-
日志服务中的日志时间戳精确到秒,所以配置时间格式( format )时,只需配置到秒,无需配置毫秒、微秒等信息。
-
只需为时间字符串中的时间部分配置时间格式( format ),其他内容(例如时区)无需配置时间格式。
-
日志服务中的每条日志都包含保留字段
__time__
,该字段的值为UNIX时间戳格式,例如1592374067,代表2020-06-17 14:07:47。 -
在日志服务分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如
'status'
表示字符串status,status
或"status"
表示日志字段status。
函数类型 |
函数名称 |
语法 |
说明 |
支持SQL |
支持SPL |
日期和时间函数 |
current_date |
返回当前日期。 |
√ |
× |
|
current_time |
返回当前时间和时区。 |
√ |
× |
||
current_timestamp |
返回当前日期、时间和时区。 |
√ |
× |
||
current_timezone() |
返回当前时区。 |
√ |
× |
||
date( x ) |
返回日期和时间表达式中的日期部分。 |
√ |
× |
||
date_format( x , format ) |
将timestamp类型的日期和时间表达式转化为指定格式的日期和时间表达式。 |
√ |
√ |
||
date_parse( x , format ) |
将日期和时间字符串转换为指定格式的timestamp类型的日期和时间表达式。 |
√ |
√ |
||
from_iso8601_date( x ) |
将ISO8601格式的日期表达式转化为date类型的日期表达式。 |
√ |
× |
||
from_iso8601_timestamp( x ) |
将ISO8601格式的日期和时间表达式转化为timestamp类型的日期和时间表达式。 |
√ |
× |
||
from_unixtime( x ) |
将UNIX时间戳转化为无时区的timestamp类型的日期和时间表达式。 |
√ |
√ |
||
from_unixtime( x , time zone ) |
将UNIX时间戳转化为带时区的timestamp类型的日期和时间表达式。 |
√ |
× |
||
from_unixtime( x , hours , minutes ) |
将UNIX时间戳转化为带时区的timestamp类型的日期和时间表达式,其中 hours 和 minutes 为时区偏移量。 |
√ |
× |
||
localtime |
返回本地时间。 |
√ |
× |
||
localtimestamp |
返回本地日期和时间。 |
√ |
× |
||
now() |
返回当前日期和时间。 now函数等同于current_timestamp函数。 |
√ |
× |
||
to_iso8601( x ) |
将date类型或timestamp类型的日期和时间表达式转换为ISO8601格式的日期和时间表达式。 |
√ |
× |
||
to_unixtime( x ) |
将timestamp类型的日期和时间表达式转化成UNIX时间戳。 |
√ |
√ |
||
日期和时间提取函数 |
day( x ) |
提取日期和时间表达式中的天数,按月计算。 day函数等同于day_of_month函数。 |
√ |
× |
|
day_of_month( x ) |
提取日期和时间表达式中的天数,按月计算。 day_of_month函数等同于day函数。 |
√ |
× |
||
day_of_week( x ) |
提取日期和时间表达式中的天数,按周计算。 day_of_week函数等同于dow函数。 |
√ |
√ |
||
day_of_year( x ) |
提取日期和时间表达式中的天数,按年计算。 day_of_year函数等同于doy函数。 |
√ |
√ |
||
dow( x ) |
提取日期和时间表达式中的天数,按周计算。 dow函数等同于day_of_week函数。 |
√ |
√ |
||
doy( x ) |
提取日期和时间表达式中的天数,按年计算。 doy函数等同于day_of_year函数。 |
√ |
√ |
||
extract( field from x ) |
通过指定的 field ,提取日期和时间表达式中的日期或时间部分。 |
√ |
× |
||
hour( x ) |
提取日期和时间表达式中的小时数,按24小时制计算。 |
√ |
√ |
||
minute( x ) |
提取日期和时间表达式中的分钟数。 |
√ |
√ |
||
month( x ) |
提取日期和时间表达式中的月份。 |
√ |
√ |
||
quarter( x ) |
计算目标日期所属的季度。 |
√ |
√ |
||
second( x ) |
提取日期和时间表达式中的秒数。 |
√ |
√ |
||
timezone_hour( x ) |
计算时区的小时偏移量。 |
√ |
× |
||
timezone_minute( x ) |
计算时区的分钟偏移量。 |
√ |
× |
||
week( x ) |
计算目标日期是在一年中的第几周。 week函数等同于week_of_year函数。 |
√ |
× |
||
week_of_year( x ) |
计算目标日期是在一年中的第几周。 week_of_year函数等同于week函数。 |
√ |
× |
||
year( x ) |
提取目标日期中的年份。 |
√ |
√ |
||
year_of_week( x ) |
提取目标日期在ISO周日历中的年份。 year_of_week函数等同于yow函数。 |
√ |
√ |
||
yow( x ) |
提取目标日期在ISO周日历中的年份。 yow函数等同于year_of_week函数。 |
√ |
√ |
||
时间间隔函数 |
date_trunc(unit, x ) |
根据您指定的时间单位截断日期和时间表达式,并按照毫秒、秒、分钟,小时、日、月或年对齐。 |
√ |
× |
|
date_add( unit , N , x ) |
在 x 上加上N个时间单位(unit)。 |
√ |
√ |
||
date_diff( unit , x , y ) |
返回两个时间表达式之间的时间差值,例如计算 x 和 y 之间相差几个时间单位(unit)。 |
√ |
√ |
||
时序补全函数 |
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_time函数
current_time函数用于返回当前时间和时区,格式为HH:MM:SS.Ms Time_zone。
语法
current_time
返回值类型
time类型。
示例
查询当前时间和时区。
-
查询和分析语句( 调试 )
* | select 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_timezone函数
current_timezone函数用于返回当前时区。
语法
current_timezone()
返回值类型
varchar类型。
示例
查询当前的时区。
-
查询和分析语句( 调试 )
* | select 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_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_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 "时间差(小时)"
-
查询和分析结果
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_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_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')
-
查询和分析结果
localtime函数
localtime函数用于返回本地时间,格式为HH:MM:SS.Ms。
语法
localtime
返回值类型
time类型。
示例
查询本地时间。
-
查询和分析语句( 调试 )
* | select 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))
-
查询和分析结果
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()))
-
查询和分析结果
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_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()))
-
查询和分析结果
day函数
day函数用于提取日期和时间表达式中的天数,按月计算。day函数等同于day_of_month函数。
语法
day(x)
参数说明
参数 |
说明 |
x |
参数值为timestamp、date类型。 |
返回值类型
bigint类型。
示例
使用current_date函数获取当前日期,然后使用day函数提取当前日期为本月的第几天。
-
查询和分析语句( 调试 )
* | SELECT current_date, day(current_date)
-
查询和分析结果
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_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_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)
-
查询和分析结果
dow函数
dow函数用于提取日期和时间表达式中的天数,按周计算。dow函数等同于day_of_week函数。
语法
dow(x)
参数说明
参数 |
说明 |
x |
参数值为timestamp、date类型。 |
返回值类型
bigint类型。
示例
使用current_date函数获取当前日期,然后使用dow函数提取当前日期为本周的第几天。
-
查询和分析语句( 调试 )
* | SELECT current_date, dow(current_date)
-
查询和分析结果
doy函数
doy函数用于提取日期和时间表达式中的天数,按年计算。doy函数等同于day_of_year函数。
语法
doy(x)
参数说明
参数 |
说明 |
x |
参数值为timestamp、date类型。 |
返回值类型
bigint类型。
示例
使用current_date函数获取当前日期,然后使用doy函数提取当前日期为本年的第几天。
-
查询和分析语句( 调试 )
* | SELECT current_date, doy(current_date)
-
查询和分析结果
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)
-
查询和分析结果
hour函数
hour函数用于提取日期和时间表达式中的小时数,按24小时制计算。
语法
hour(x)
参数说明
参数 |
说明 |
x |
参数值为timestamp类型。 |
返回值类型
bigint类型。
示例
使用current_timestamp函数获取当前日期和时间,然后使用hour函数提取当前时间的小时数。
-
查询和分析语句( 调试 )
* | SELECT current_timestamp, hour(current_timestamp)
-
查询和分析结果
minute函数
minute函数用于提取日期和时间表达式中的分钟数。
语法
minute(x)
参数说明
参数 |
说明 |
x |
参数值为timestamp类型。 |
返回值类型
bigint类型。
示例
使用current_timestamp函数获取当前日期和时间,然后使用minute函数提取当前时间的分钟数。
-
查询和分析语句( 调试 )
* | SELECT current_timestamp, minute(current_timestamp)
-
查询和分析结果
month函数
month函数用于提取日期和时间表达式中的月份。
语法
month(x)
参数说明
参数 |
说明 |
x |
参数值为date、timestamp类型。 |
返回值类型
bigint类型。
示例
使用current_timestamp函数获取当前日期和时间,然后使用month函数提取当前日期所属的月份。
-
查询和分析语句( 调试 )
* | SELECT current_timestamp, month(current_timestamp)
-
查询和分析结果
quarter函数
quarter函数用于返回日期所属的季度。
语法
quarter(x)
参数说明
参数 |
说明 |
x |
参数值为date、timestamp类型。 |
返回值类型
bigint类型。
示例
使用current_timestamp函数获取当前日期和时间,然后使用quarter函数计算当前日期所属的季度。
-
查询和分析语句( 调试 )
* | SELECT current_timestamp,quarter(current_timestamp)
-
查询和分析结果
second函数
second函数用于提取日期和时间表达式中的秒数。
语法
second(x)
参数说明
参数 |
说明 |
x |
参数值为timestamp类型。 |
返回值类型
bigint类型。
示例
使用current_timestamp函数获取当前日期和时间,然后使用second函数提取当前时间的秒数。
-
查询和分析语句( 调试 )
* | SELECT current_timestamp,second(current_timestamp)
-
查询和分析结果
timezone_hour函数
timezone_hour函数用于计算时区的小时偏移量。
语法
timezone_hour(x)
参数说明
参数 |
说明 |
x |
参数值为timestamp类型。 |
返回值类型
bigint类型。
示例
使用current_timestamp函数获取当前日期和时间,然后使用timezone_hour函数计算当前时间所属时区的小时偏移量。
-
查询和分析语句( 调试 )
* | SELECT current_timestamp, timezone_hour(current_timestamp)
-
查询和分析结果
timezone_minute函数
timezone_minute函数用于计算时区的分钟偏移量。
语法
timezone_minute(x)
参数说明
参数 |
说明 |
x |
参数值为timestamp类型。 |
返回值类型
bigint类型。
示例
使用current_timestamp函数获取当前日期和时间,然后使用timezone_minute函数计算当前时间所属时区的分钟偏移量。
-
查询和分析语句( 调试 )
* | SELECT current_timestamp,timezone_minute(current_timestamp)
-
查询和分析结果
week函数
week函数用于计算目标日期是在一年中的第几周。week函数等同于week_of_year函数。
语法
week(x)
参数说明
参数 |
说明 |
x |
参数值为date、timestamp类型。 |
返回值类型
bigint类型。
示例
使用current_timestamp函数获取当前日期和时间,然后使用week函数计算当前日期是一年中的第几周。
-
查询和分析语句( 调试 )
* | SELECT current_timestamp, week(current_timestamp)
-
查询和分析结果
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)
-
查询和分析结果
year函数
year函数用于提取目标日期中的年份。
语法
year(x)
参数说明
参数 |
说明 |
x |
参数值为date、timestamp类型。 |
返回值类型
bigint类型。
示例
使用current_timestamp函数获取当前日期和时间,然后使用year函数提取当前日期中的年份。
-
查询和分析语句( 调试 )
* | SELECT current_timestamp,year(current_timestamp)
-
查询和分析结果
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)
-
查询和分析结果
yow函数
yow函数用于返回目标日期在ISO周日历中的年份。yow函数等同于year_of_week函数。
语法
yow(x)
参数说明
参数 |
说明 |
x |
参数值为date、timestamp类型。 |
返回值类型
bigint类型。
示例
使用current_timestamp函数获取当前日期和时间,然后使用yow函数返回当前日期在ISO周日历中的年份。
-
查询和分析语句( 调试 )
* | SELECT current_timestamp, yow(current_timestamp)
-
查询和分析结果
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_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))
-
查询和分析结果
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 "时间差(小时)"
-
查询和分析结果
time_series函数
time_series函数用于补全您查询时间窗口内缺失的数据。
time_series函数必须搭配GROUP BY语法和ORDER BY语法使用,且ORDER BY语法不支持DESC排序方式。
语法
time_series(x, window_time, format, padding_data)
参数说明
参数 |
说明 |
x |
时间列,例如
|
window_time |
窗口大小,单位为s(秒)、m(分)、h(小时)、d(天)。例如2h、5m、3d。 |
format |
返回结果的时间格式。更多信息,请参见 format说明 。 |
padding_data |
补全的内容。包括:
|
返回值类型
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小时制,格式为
|
%S |
秒。取值范围为00~59。 |
%s |
秒。取值范围为00~59。 |
%f |
毫秒。取值范围为000~999。 |
%T |
时间。24小时制,格式为
|
%v |
每年的第几周,星期一是一周的第一天。取值范围为01~53。 |
%W |
星期几的名称。例如Sunday、Saturday。 |
%Y |
4位数的年份。例如2020。 |
%y |
2位数的年份。例如20。 |
%% |
%的转义字符。 |
unit说明
unit |
说明 |
millisecond |
毫秒 |
second |
秒 |
minute |
分钟 |
hour |
小时 |
day |
天 |
week |
周 |
month |
月 |
quarter |
季度 |
year |
年 |