在查詢分析中往往需要對日志中的時間字段進行處理,例如將時間戳轉換成指定格式等,本文檔介紹時間字段的常用轉換示例。
時間字段
時間字段類型
日志服務的保留字段__time__:用API/SDK寫入日志數據時指定的日志時間,該字段可用于日志投遞、查詢、分析。
日志中原有的時間字段:日志在生成時,用于記錄日志事件發生時間的字段,是原始日志的字段。
轉換時間字段格式的方式:
把__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')
把日志中的時間轉換成指定格式
把日志中的時間字段從字符轉化成指定格式。
使用date_parse函數將時間字段,從字符串轉化成
年-月-日 時:分:秒
。使用date_format函數截取
年-月-日
部分。使用
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
文檔內容是否對您有幫助?