docs: format
This commit is contained in:
parent
545a9c5311
commit
9122b3b0a2
|
@ -25,13 +25,13 @@ TDengine 在不同组件中均支持使用 IANA 时区(除 Windows taos.cfg
|
||||||
|
|
||||||
标准时间是根据地球上某个固定经线确定的时间。它为各个时区提供了一个统一的参考点。
|
标准时间是根据地球上某个固定经线确定的时间。它为各个时区提供了一个统一的参考点。
|
||||||
|
|
||||||
- 格林尼治标准时间(GMT):历史上使用的参考时间,位于0°经线。
|
- 格林尼治标准时间(GMT):历史上使用的参考时间,位于 0° 经线。
|
||||||
- 协调世界时(UTC):现代的时间标准,类似于GMT,但更加精确。
|
- 协调世界时(UTC):现代的时间标准,类似于GMT,但更加精确。
|
||||||
|
|
||||||
标准时间与时区的关系如下:
|
标准时间与时区的关系如下:
|
||||||
|
|
||||||
- 基准:标准时间(如 UTC)是时区设定的基准点。
|
- 基准:标准时间(如 UTC)是时区设定的基准点。
|
||||||
- 偏移量:不同时区通过相对于标准时间的偏移量来定义。例如,UTC+1表示比 UTC 快 1 小时。
|
- 偏移量:不同时区通过相对于标准时间的偏移量来定义。例如,UTC+1 表示比 UTC 快 1 小时。
|
||||||
- 区域划分:全球被划分为多个时区,每个时区使用一个或多个标准时间。
|
- 区域划分:全球被划分为多个时区,每个时区使用一个或多个标准时间。
|
||||||
|
|
||||||
相对于标准时间,每个地区根据其所在时区设定其当地时间:
|
相对于标准时间,每个地区根据其所在时区设定其当地时间:
|
||||||
|
@ -45,7 +45,7 @@ TDengine 在不同组件中均支持使用 IANA 时区(除 Windows taos.cfg
|
||||||
|
|
||||||
按照这个规则,可以看到:
|
按照这个规则,可以看到:
|
||||||
|
|
||||||
- 柏林当地时间 2024 年 3 月 31 日 02:00:00 到 03:00:00 (不含 03:00:00)之间的时间不存在(跳变)。
|
- 柏林当地时间 2024 年 03 月 31 日 02:00:00 到 03:00:00 (不含 03:00:00)之间的时间不存在(跳变)。
|
||||||
- 柏林当地时间 2024 年 10 月 27 日 02:00:00 到 03:00:00 (不含 03:00:00)之间的时间出现了两次。
|
- 柏林当地时间 2024 年 10 月 27 日 02:00:00 到 03:00:00 (不含 03:00:00)之间的时间出现了两次。
|
||||||
|
|
||||||
#### 夏令时与 IANA 时区数据库
|
#### 夏令时与 IANA 时区数据库
|
||||||
|
@ -56,8 +56,8 @@ TDengine 在不同组件中均支持使用 IANA 时区(除 Windows taos.cfg
|
||||||
|
|
||||||
#### 夏令时与时间戳转换
|
#### 夏令时与时间戳转换
|
||||||
|
|
||||||
- 时间戳转为当地时间是确定的。例如,1729990654 为柏林时间 夏令时 2024-10-27 02:57:34,1729994254 为柏林时间 冬令时 2024-10-27 02:57:34 (这两个本地时间除时间偏移量外是一样的)。
|
- 时间戳转为当地时间是确定的。例如,1729990654 为柏林时间**夏令时** `2024-10-27 02:57:34`,1729994254 为柏林时间**冬令时** `2024-10-27 02:57:34`(这两个本地时间除时间偏移量外是一样的)。
|
||||||
- 不指定时间偏移量时,当地时间转为时间戳是不确定的。夏令时跳过的时间不存在会造成无法转换成时间戳,如 柏林时间 2024-03-31 02:34:56 不存在,所以无法转换为时间戳。夏令时结束时重复导致无法确定是哪个时间戳,如 2024-10-27 02:57:34 不指定时间偏移量无法确定 是 1729990654 还是 1729994254。指定时间偏移量才能确定时间戳,如 2024-10-27 02:57:34 CEST(+02:00) ,指定了夏令时 2024-10-27 02:57:34 时间戳 1729990654 。
|
- 不指定时间偏移量时,当地时间转为时间戳是不确定的。夏令时跳过的时间不存在会造成无法转换成时间戳,如 **柏林时间** `2024-03-31 02:34:56` 不存在,所以无法转换为时间戳。夏令时结束时重复导致无法确定是哪个时间戳,如 `2024-10-27 02:57:34` 不指定时间偏移量无法确定 是 1729990654 还是 1729994254。指定时间偏移量才能确定时间戳,如 `2024-10-27 02:57:34 CEST(+02:00) `,指定了夏令时 `2024-10-27 02:57:34` 时间戳 1729990654 。
|
||||||
|
|
||||||
### RFC3339 时间格式
|
### RFC3339 时间格式
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ select * from t1 where ts >= '2024-10-27T01:59:59.000Z';
|
||||||
|
|
||||||
### 表格分析
|
### 表格分析
|
||||||
|
|
||||||
- 在**夏令时开始**(柏林时间 3月31日 02:00 )时,时间直接从 02:00 跳到 03:00(往后跳一小时)。
|
- 在**夏令时开始**(柏林时间 3 月 31 日 02:00)时,时间直接从 02:00 跳到 03:00(往后跳一小时)。
|
||||||
- 浅绿色是夏令时开始前一小时的时间戳;
|
- 浅绿色是夏令时开始前一小时的时间戳;
|
||||||
- 深绿色是夏令时开始后一小时的时间戳;
|
- 深绿色是夏令时开始后一小时的时间戳;
|
||||||
- 红色为 TDengine 数据库中插入了不存在的当地时间:
|
- 红色为 TDengine 数据库中插入了不存在的当地时间:
|
||||||
|
@ -116,7 +116,7 @@ select * from t1 where ts >= '2024-10-27T01:59:59.000Z';
|
||||||
- **UTC 时间不变**:UTC 时间保持不变,确保了时间的一致性和顺序性。
|
- **UTC 时间不变**:UTC 时间保持不变,确保了时间的一致性和顺序性。
|
||||||
- **RFC3339**:RFC3339 格式时间显示了时间偏移量的变化,在夏令时开始后变为 +02:00,结束后变为 +01:00 。
|
- **RFC3339**:RFC3339 格式时间显示了时间偏移量的变化,在夏令时开始后变为 +02:00,结束后变为 +01:00 。
|
||||||
- **条件查询**:
|
- **条件查询**:
|
||||||
- **夏令时开始**时,跳过的时间(`[03-31 02:00:00,03-31 03:00:00)`)不存在,所以在使用该时间进行查询时,行为不确定:`SELECT ts FROM t1 WHERE ts BETWEEN '2024-03-31 02:00:00' AND '2024-03-31 02:59:59'` (不存在的本地时间戳被转换为 `-1000`):
|
- **夏令时开始**时,跳过的时间(`[03-31 02:00:00,03-31 03:00:00)`)不存在,所以在使用该时间进行查询时,行为不确定:`SELECT ts FROM t1 WHERE ts BETWEEN '2024-03-31 02:00:00' AND '2024-03-31 02:59:59'`(不存在的本地时间戳被转换为 `-1000`):
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
taos> SELECT ts FROM t1 WHERE ts BETWEEN '2024-03-31 02:00:00' AND '2024-03-31 02:59:59';
|
taos> SELECT ts FROM t1 WHERE ts BETWEEN '2024-03-31 02:00:00' AND '2024-03-31 02:59:59';
|
||||||
|
@ -179,7 +179,7 @@ select * from t1 where ts >= '2024-10-27T01:59:59.000Z';
|
||||||
Query OK, 1 row(s) in set (0.004480s)
|
Query OK, 1 row(s) in set (0.004480s)
|
||||||
```
|
```
|
||||||
|
|
||||||
- 以下查询 [2024-10-27 02:00:01,2024-10-27 02:57:35] 却能查到 3 条数据(包含一条 02:59:59 的当地时间数据):
|
- 以下查询 `[2024-10-27 02:00:01,2024-10-27 02:57:35]` 却能查到 3 条数据(包含一条 02:59:59 的当地时间数据):
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
taos> SELECT ts, to_iso8601(ts,'Z'), TO_CHAR(ts, 'YYYY-MM-DD HH:mi:ss') FROM t1 WHERE ts >= '2024-10-27 02:00:00' AND ts <= '2024-10-27 02:57:35';;
|
taos> SELECT ts, to_iso8601(ts,'Z'), TO_CHAR(ts, 'YYYY-MM-DD HH:mi:ss') FROM t1 WHERE ts >= '2024-10-27 02:00:00' AND ts <= '2024-10-27 02:57:35';;
|
||||||
|
|
Loading…
Reference in New Issue