docs: format

This commit is contained in:
Simon Guan 2025-03-06 17:11:13 +08:00
parent 545a9c5311
commit 9122b3b0a2
1 changed files with 19 additions and 19 deletions

View File

@ -25,13 +25,13 @@ TDengine 在不同组件中均支持使用 IANA 时区(除 Windows taos.cfg
标准时间是根据地球上某个固定经线确定的时间。它为各个时区提供了一个统一的参考点。 标准时间是根据地球上某个固定经线确定的时间。它为各个时区提供了一个统一的参考点。
- 格林尼治标准时间GMT历史上使用的参考时间位于0°经线。 - 格林尼治标准时间GMT历史上使用的参考时间位于 经线。
- 协调世界时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:341729994254 为柏林时间 冬令时 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';;