TDEngine时区相关概念

阅读数:475 评论数:0

跳转到新版页面

分类

应用软件

正文

先说结论:客户端的timezone=UTC-8

一、TDEngine中时间

1、内部用时间戳表示日期时间,以标准的Unix元年时间(UTC时区 1970-1-1 0:0:0)为原点。

2、在写入时,如果SQL中是本地日期时间格式,TDengine客户端使用当前生效的timezone配置,将SQL中的日期转换为timestamp,同时支持使用RFC-3339格式的日期时间进行写入。

3、查询时,客户端根据当前生效的timezone配置,将TDengine中存储的timestamp转换为日期时间格式进行显示。

二、时区相关概念

1、RFC 3339

一种表示日期时间的标准格式,是带时区信息的格式。

例如:

2019-10-12T07:20:50+00:00,这个表示2019年10月12日,上午7点20分50秒(UTC+0时区),
2019-10-12T15:20:50+08:00,这个表示2019年10月12日,下午3点20分50秒(UTC+8时区)。

2、ISO 8601

国际标准ISO 8601,是国际标准化组织的日期和时间的表示方法。

(1)ISO8601日期格式

YYYY-MM-DDThh:mm:ss[.mmm]TZD

2018-05-11T06:25:05.578Z
T 代表日期和时间的连接符
TZD: 表示时区指示符,可以是Z或+hh:mm或-hh:mm,Z 表示是 UTC 时间,+或-
表示距离UTC时区多远。

(2)ISO8601持续时间格式

P(n)Y(n)M(n)DT(n)H(n)M(n)S

P是持续时间指示符,始终放置在持续时间的开头位置
T表示时间元素开始的指示符
n为数值
符号 含义
Y
M
D
W 星期
H
M
S
P3Y8M5DT12H30M6S
表示的持续时间为:三年八个月五天,十二小时三十分钟六秒。
P1Y 一年
P1M 1月
P1D 1天
PT1H 1小时
PT1M  1分钟
PT60s  60秒

3、posix 时区

与ISO 8601时区定义相反, 在ISO 8601时区格式中,负号表示区域位于UTC(格林威治以西)之后,而正号表示区域位于UTC之前(格林威治以东),可能与POSIX在美国开发有关。

$ TZ=UTC-8 date +'%Z %z'
UTC +0800
$ TZ=UTC8 date +'%Z %z'
UTC -0800
$ TZ=FOO-8 date +'%Z %z'
FOO +0800



相关推荐

获取批处理命令时间戳,最终格式为yyyyMMddHHmmSS **windows没有专门的时间戳函数,只有d