关于 TDengine 的时区(timeZone)问题

背景

在学习SagooIOT物联网平台使用docker部署TDengine时序数据库,根据时间戳(timestamp)ts查询上报设备数据时 发现结果跟查询条件不匹配。查询问题原因竟然是timezone时区设置问题。

查询数据结果:

查看容器时区:

docker exec -it 容器id /bin/bash

cat /etc/timezone
Etc/UTC

在SagooIoT的docker-compase.yml文件中修改 TDengine容器的时区

version: '3'  
services:  
  tdengine:  
    image: tdengine/tdengine:3.2.1.0  
    restart: always  
    container_name: tdengine-server  
    ports:  
      - 6030:6030  
      - 6041:6041  
    environment:  
      - TZ=Asia/Shanghai # 设置时区为上海,即UTC+8

如何设置tdengine 启动的docker容器 的时区为UTF+8

docker run -e TZ=Asia/Shanghai --name your_container_name -d your_image

修改为UTF+ 8时区之后,查询结果

学习参考物联网平台: SagooIoT

项目地址:https://github.com/sagoo-cloud/sagooiot

TDengine 

        是一个高性能的物联网(IoT)、互联网 of Things (IoT)、工业互联网和时序数据平台。在时序数据库TDengine中,ts是表示时间戳(timestamp)的一个关键字,如果在使用 TDengine 查询数据时没有返回预期的结果,可能有以下原因:

        1.时间戳格式:确保 ts 字段的格式与查询中使用的格式一致;

        2.时区问题:时区设置不一致 导致查询不一致;

从TDengine官网描述:

可知根据ts作为时间条件的基本查询sql为

SELECT * FROM tb1 WHERE ts > '2018-06-01 08:00:00.000' AND ts <= '2018-06-02 08:00:00.000' AND col3 LIKE '%nny' ORDER BY ts DESC;

了解几个名词:

1.本地日期时间 

        表示当地的日期时间。12:00是中午吃饭的时间,8:00是早上上班的时间,这是我们习惯的一种表示时间的方式,是不带时区信息的日期和时间,可以当成一个String。例如:2024-04-10 18:00:00.000,表示2024年4月10日晚18点,时间精度以毫秒记,这个日期时间的表示方法,不带任何时区信息

2.时区

        地理概念,按照UTC/格林威治时区,把地球划分成向东和向西各12个时区,其中东12区和西12区是一个区。时区可以通过'Asia/shanghai'这样的'地区/城市'的方式表示,也可以用UTC偏移的方式表示。例如:UTC+8,代表东八区,当协调世界时(UTC)时间为凌晨2点的时候,当地的时间为2+8点,即早上10点;中国现时区使用UTC+8

3.时间戳

        是机器存储和计算时间的方式。以Unix元年(UTC时区1970年1月1日0点0分0秒)开始经过的秒数计算,不同精度的计时方式,可以有不同的时间戳。例如:0,表示UTC时区1970年1月1日凌晨的时间

4.RFC 3339

        一种表示日期时间的标准格式。RFC 3339是带时区信息的格式,即包含日期时间信息,也有时区信息。例如,以下两个时间在地球上是同一时刻:

2024-04-10T07:20:50+00:00,这个表示2024年04月10日,上午7点20分50秒(UTC+0时区),

2024-04-10T15:20:50+08:00,这个表示2024年04月10日,下午3点20分50秒(UTC+8时区)。

相关推荐

  1. Cisco Firepower 2100 set timezone修改时区

    2024-04-11 19:14:03       49 阅读
  2. 国际化项目开发中关于时间问题

    2024-04-11 19:14:03       33 阅读
  3. 国际化项目开发中关于时间问题

    2024-04-11 19:14:03       29 阅读
  4. TDengine启动和连接问题

    2024-04-11 19:14:03       57 阅读
  5. TDengine笔记

    2024-04-11 19:14:03       48 阅读
  6. 时序数据库TDengine窗口函数

    2024-04-11 19:14:03       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-11 19:14:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-11 19:14:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-11 19:14:03       82 阅读
  4. Python语言-面向对象

    2024-04-11 19:14:03       91 阅读

热门阅读

  1. 深度学习——离线数据增强——图片resize

    2024-04-11 19:14:03       29 阅读
  2. bfs例题

    2024-04-11 19:14:03       23 阅读
  3. Linux 终端显示 Git 当前所在分支

    2024-04-11 19:14:03       33 阅读
  4. Open CASCADE学习|迭代NCollection_Sequence<gp_Pnt>

    2024-04-11 19:14:03       34 阅读
  5. npm常用命令详细介绍

    2024-04-11 19:14:03       36 阅读
  6. 运维记录 会产生无用日志的服务器

    2024-04-11 19:14:03       32 阅读
  7. spring事务问题的解决和处理

    2024-04-11 19:14:03       39 阅读
  8. 【数学建模】通过调整飞行角度使飞机顺利飞行

    2024-04-11 19:14:03       35 阅读
  9. MySQL的sql_mode模式简介

    2024-04-11 19:14:03       33 阅读