InfluxDB從原理到實戰 - 一篇文章搞懂InfluxDB時區

0x00 簡介
    InfluxDB默認以UTC時間存儲並返回時間戳,當接收到一個時序數據記錄時,InfluxDB將時間戳從本地時區時間轉換爲UTC時間並存儲,查詢時,InfluxDB返回的時間戳對應的是UTC時間。InfluxDB支持經過在tz()子句中指定TZ格式的時區名字,如Asia/Shanghai,將UTC時間轉換爲中國本地時間,基本語法以下。數據庫

SELECT_clause ... tz('<time_zone>')

注意,該time_zone參數遵循Internet分配號碼受權機構時區數據庫中的TZ語法(https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List),而且須要單引號引用。

0x01 示例
    經過tz()子句將時序數據的時間戳從UTC時間轉換爲Asia/Shanghai時區的本地時間。微信

> create database monito
> use monito
Using database monito
>
> insert cpu_usage,host=server01 value=0.67 1572797280000000000
>
> select * from cpu_usage
name: cpu_usage
time                 host     value
----                 ----     -----
2019-11-03T16:08:00Z server01 0.67
>
> select * from cpu_usage tz('Asia/Shanghai')
name: cpu_usage
time                      host     value
----                      ----     -----
2019-11-04T00:08:00+08:00 server01 0.67
>
>

在示例中,建立數據庫monitor,並在數據庫monitor中插入一條時間戳爲亞洲上海時間2019-11-04T00:08:00Z的時序數據記錄,而後使用select命令查詢,發現顯示的時間戳爲UTC時間2019-11-03T16:08:00Z,加上tz('Asia/Shanghai')子句再查詢,顯示的時間戳爲亞洲上海時間2019-11-04T00:08:00+08:00。

後記
歡迎交流討論:
微信公衆號:influxdb-dev
InfluxDB技術交流羣(QQ):663274123spa

相關文章
相關標籤/搜索