在查詢分析中往往需要對日誌中的時間欄位進行處理,例如將時間戳記轉換成指定格式等,本文檔介紹時間欄位的常用轉換樣本。
時間欄位
時間欄位類型
Log Service的保留欄位__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