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):663274123


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM