时间字段转换示例

在查询分析中往往需要对日志中的时间字段进行处理,例如将时间戳转换成指定格式等,本文档介绍时间字段的常用转换示例。

时间字段

把__time__转化成时间戳

使用from_unixtime函数__time__字段,从UNIX时间戳转化为timestamp类型的日期和时间表达式。

* | select from_unixtime(__time__) 

把__time__以指定格式打印

使用date_format函数将字段__time__,从 timestamp类型的日期和时间表达式的形式转换为指定格式。

* | select date_format(__time__, '%Y-%m-%d %H:%i:%S') 

把日志中的时间转换成指定格式

把日志中的时间字段从字符转化成指定格式。

  1. 使用date_parse函数将时间字段,从字符串转化成年-月-日 时:分:秒

  2. 使用date_format函数截取年-月-日部分。

  3. 使用group by进行分组。

  • 日志样例:

    __topic__:  
    body_byte_sent:  307
    hostname:  example.com
    http_user_agent:  Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60 QQ/192.0.2.1 V1_IPH_SQ_7.1.8_1_APP_A Pixel/750 Core/UIWebView NetType/WIFI QBWebViewType/1
    method:  GET
    referer:  www.example.com
    remote_addr:  192.0.2.0
    request_length:  111
    request_time:  2.705
    status:  200
    upstream_response_time:  0.225582883754
    url:  /?k0=v9&
    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