月子会所 网站源码,免费网站建设优化,c2g的代表性电商平台,一个网站的制作过程一般来说#xff0c;时序数据就是带有时间序列属性的数据。在处理时序数据时#xff0c;TDengine有着自己独特的方式。但是如果没有正确理解TDengine在写入和查询上的行为#xff0c;极可能会因为配置了错误的时区#xff08;timezone#xff09;#xff0c;而导致写入和… 一般来说时序数据就是带有时间序列属性的数据。在处理时序数据时TDengine有着自己独特的方式。但是如果没有正确理解TDengine在写入和查询上的行为极可能会因为配置了错误的时区timezone而导致写入和查询的时间出现错位。 如用户执行的一条SQL写入了“2021-07-23 07:04:00.000这个时刻的数据可是在不同的客户端中查询出的结果却相差了8个小时。 本文将日期时间、时间戳以及TDengine在写入和查询时处理时区的行为等描述清楚并给出如何设置timezone参数的意见供参考。
一、 本地日期时间、时区、时间戳 关键词说明 本地日期时间表示当地的日期时间。12:00是中午吃饭的时间8:00是早上上班的时间这是人类习惯的一种表示时间的方式是不带时区信息的日期和时间可以当成一个String。例如2021-07-21 12:00:00.000表示2021年7月21日正午时间精度以毫秒记这个日期时间的表示方法不带任何时区信息。时区地理概念按照UTC/格林威治时区把地球划分成向东和向西各12个时区其中东12区和西12区是一个区。时区可以通过’Asia/shanghai’这样的’地区/城市’的方式表示也可以用UTC偏移的方式表示。例如UTC8代表东八区当协调世界时UTC时间为凌晨2点的时候当地的时间为28点即早上10点。RFC 3339一种表示日期时间的标准格式。RFC 3339是带时区信息的格式即包含日期时间信息也有时区信息。例如以下两个时间在地球上是同一时刻 2019-10-12T07:20:5000:00这个表示2019年10月12日上午7点20分50秒(UTC0时区) 2019-10-12T15:20:5008:00这个表示2019年10月12日下午3点20分50秒(UTC8时区)。时间戳是机器存储和计算时间的方式。以Unix元年UTC时区1970年1月1日0点0分0秒开始经过的秒数计算不同精度的计时方式可以有不同的时间戳。例如0表示UTC时区1970年1月1日凌晨的时间。 TDengine中用时间戳表示日期时间以标准的Unix元年时间UTC时区1970年1月1日0点0分0秒为原点支持毫秒、微秒、纳秒三种精度在写入时如果SQL中是本地日期时间格式TDengine的客户端使用当前生效的timezone配置将SQL中的日期时间转换为timestamp同时也支持使用RFC-3339格式的日期时间进行写入在shell中查询时客户端使用当前生效的timezone配置将TDengine中存储的timestamp转换为日期时间格式进行显示。
二、查看/设置tdengine时区
2.1 查看时区
查看tdengine的时区信息在shell命令下执行命令show variables;
2.2 设置时区 TDengine 客户端会自动读取当前系统时区保证 Windows 和 Linux 时区正确即可无需进行任何配置。 若要配置如何配置如下所示 1国内时区为东八区ISO 8601 标准下表示为 UTC8POSIX标准下表示为 UTC-8。 2若要配置时区为东八区在 Windows 下应配置 UTC8在 Linux 下应配置为 UTC-8 这是因为 Windows 和 Linux 的时区标准不同 在 Windows 下客户端配置文件目录为 C:\TDengine\cfg\taos.cfg修改 timezone 属性为 UTC8 在 Linux 下客户端配置文件目录为 /etc/taos/taos.cfg修改 timezone 属性为 UTC-8
编辑配置文件vi /etc/taos/taos.cfg 根据需要修改配置文件圈出部分的时区信息。修改保存后重新启动taos服务使得修改生效systemctl restart taosd 参考链接一文吃透TDengine上的时区设置 三、使用第三方工具查询时返回时区不正确的处理
【node-red时区问题解决方案对比】