使用时间函数将日志时间字段转换为指定格式
在日志搜索分析中往往需要对日志中的时间字段进行处理,例如将日志的时间戳转换成指定格式等,本文介绍时间字段的常用转换示例。
本示例属于白名单功能,支持华北-北京四、华东-上海一、华南-广州、亚太-新加坡、拉美-墨西哥城二区域的白名单用户使用,如有需要,请提交工单,其他区域暂不支持申请开通。
时间字段
- 时间字段类型
- 云日志服务的保留字段__time__:用API/SDK写入日志数据时指定的日志时间,该字段可用于日志投递、查询、分析。
- 日志中原有的时间字段:日志在生成时,用于记录日志事件发生时间的字段,是原始日志的字段。
- 转换时间字段格式的方式:
将__time转化成时间戳
使用from_unixtime函数将__time字段,从UNIX时间戳转化为timestamp类型的日期和时间表达式。
* | select from_unixtime(__time)
* | select from_unixtime(__time,'+08:00')
将__time以指定格式打印
使用date_format函数将字段__time,从 timestamp类型的日期和时间表达式的形式转换为指定格式。
* | select time_format( from_unixtime(__time), 'yyyy-MM-dd HH:mm:ss','+08:00')
使用time_format函数将字段__time,从 timestamp类型的日期和时间表达式的形式转换为指定格式。
* | select date_format(from_unixtime(__time,'+08:00'),'%Y-%m-%d %H:%i:%s')
将日志中的时间转换成指定格式
把日志中的时间字段从字符转化成指定格式。
- 使用date_parse函数将时间字段,从字符串转化成年-月-日 时:分:秒。
- 使用date_format函数截取年-月-日部分。
- 使用group by进行分组。
- 日志样例:
time:2017-05-17 09:45:00
- SQL语句样例:
* | select date_format (date_parse(time,'%Y-%m-%d %H:%i:%S'), '%Y-%m-%d') as day, count(1) as uv group by day order by day asc
- 日志样例: