Skip to content

Commit 7ac9575

Browse files
committed
CN-temp
1 parent edba8ca commit 7ac9575

File tree

20 files changed

+407
-64
lines changed

20 files changed

+407
-64
lines changed

i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/scalar-functions/date-time-functions/date-ceil.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,16 @@ $type$ 代表的是周期单位
3030

3131
| 参数 | 说明 |
3232
| -- | -- |
33-
| `<date_or_time_expr>` | 参数是合法的日期表达式,支持输入为 timestamptz, datetime 或者 date 类型,具体格式请查看 [timestamptz的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/timestamptz-conversion), [datetime 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion)[date 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/date-conversion)|
33+
| `<date_or_time_expr>` | 参数是合法的日期表达式,支持输入 date/datetime/timestamptz 类型,具体格式请查看 [timestamptz的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/timestamptz-conversion), [datetime 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion)[date 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/date-conversion)|
3434
| `<period>` | 参数是指定每个周期有多少个单位组成,类型为 INT, 开始的时间起点为 0001-01-01T00:00:00 |
3535
| `<type>` | 参数可以是:YEAR, QUARTER, MONTH, WEEK ,DAY, HOUR, MINUTE, SECOND|
3636

3737
## 返回值
3838

39-
返回的是一个日期或时间值,表示将输入值向上舍入到指定单位的结果。
40-
返回与 datetime 类型一致的取整结果:
39+
返回类型为 TIMESTAMPTZ, DATETIME 或 DATE。返回的是一个日期或时间值,表示将输入值向上舍入到指定单位的结果。
40+
41+
返回与 `<date_or_time_expr>` 类型一致的取整结果:
42+
- 若输入为 TIMESTAMPTZ 类型,则会先将其转换为 local_time(如:`2025-12-31 23:59:59+05:00` 在会话变量为`+08:00`的情况下代表的local_time为`2026-01-01 02:59:59`),再进行 DATE_CEIL 计算操作。
4143
- 输入 DATE 类型时,返回 DATE(仅日期部分);
4244
- 输入 DATETIME 类型,返回 DATETIME(包含日期和时间)。
4345
- 输出 TIMESTAMPTZ 类型,返回 TIMESTAMPTZ(包含日期、时间和偏移量)。
@@ -125,6 +127,14 @@ SELECT DATE_CEIL('2025-12-31 23:59:59+05:00', INTERVAL 1 YEAR);
125127
| 2027-01-01 00:00:00 |
126128
+---------------------------------------------------------+
127129

130+
-- TimeStampTz类型样例, SET time_zone = '+08:00'
131+
-- 将变量值转换为 local_time(2026-01-01 02:59:59)后再做 DATE_CEIL 操作
132+
SELECT DATE_CEIL('2025-12-31 23:59:59+05:00', INTERVAL 1 YEAR);
133+
+---------------------------------------------------------+
134+
| DATE_CEIL('2025-12-31 23:59:59+05:00', INTERVAL 1 YEAR) |
135+
+---------------------------------------------------------+
136+
| 2027-01-01 00:00:00+08:00 |
137+
+---------------------------------------------------------+
128138

129139
-- 超过最大年数
130140
mysql> select date_ceil("9999-07-13",interval 5 year);

i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/scalar-functions/date-time-functions/date-floor.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,19 @@ $type$ 代表的是周期单位
3030

3131
| 参数 | 说明 |
3232
| -- | -- |
33-
| `date_or_time_expr` | 参数是合法的日期表达式,类型为 为 datetime 或者 date 类型,具体 datetime 和 date 格式请查看 [datetime 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion)[date 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/date-conversion)) |
33+
| `date_or_time_expr` | 参数是合法的日期表达式,支持输入 date/datetime/timestamptz 类型,具体格式请查看 [timestamptz的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/timestamptz-conversion), [datetime 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion)[date 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/date-conversion) |
3434
| `period` | 参数是指定每个周期有多少个单位组成,为 `INT` 类型,开始的时间起点为 0001-01-01T00:00:00 |
3535
| `type` | 参数可以是:YEAR, MONTH, WEEK,DAY, HOUR, MINUTE, SECOND |
3636

3737
## 返回值
3838

39-
返回一个日期按照 period 周期向下取整的结果,类型和 datetime 保持一致
39+
返回类型为 TIMESTAMPTZ, DATETIME 或 DATE。返回一个日期按照 period 周期向下取整的结果,类型和 `<date_or_time_expr>` 保持一致
4040

4141
返回与 datetime 类型一致的取整结果:
42+
- 若输入为 TIMESTAMPTZ 类型,则会先将其转换为 local_time(如:`2025-12-31 23:59:59+05:00` 在会话变量为`+08:00`的情况下代表的local_time为`2026-01-01 02:59:59`),再进行 DATE_FLOOR 计算操作。
4243
- 输入 DATE 类型时,返回 DATE(仅日期部分);
4344
- 输入 DATETIME 类型时,返回 DATETIME(包含日期和时间)。
45+
- 输出 TIMESTAMPTZ 类型,返回 TIMESTAMPTZ(包含日期、时间和偏移量)。
4446
- 输入带有 scale 的日期时间,返回值也会带有 scale, 小数部分为 0 。
4547

4648
特殊情况:
@@ -82,6 +84,18 @@ mysql> select date_floor("2023-07-13", INTERVAL 5 YEAR);
8284
| 2021-01-01 00:00:00 |
8385
+-------------------------------------------+
8486

87+
-- TimeStampTz类型样例, SET time_zone = '+08:00'
88+
-- 将变量值转换为 local_time(2026-01-01 02:59:59)后再做 DATE_FLOOR 操作
89+
SELECT DATE_FLOOR('2025-12-31 23:59:59+05:00', INTERVAL 1 YEAR);
90+
+----------------------------------------------------------+
91+
| DATE_FLOOR('2025-12-31 23:59:59+05:00', INTERVAL 1 YEAR) |
92+
+----------------------------------------------------------+
93+
| 2026-01-01 00:00:00+08:00 |
94+
+----------------------------------------------------------+
95+
96+
-- 若参数同时包含 TimeStampTz 和 Datetime 类型,则输出 DateTime 类型
97+
SELECT DATE_FLOOR('2025-12-31 23:59:59+05:00', INTERVAL 1 HOUR, '2025-12-15 00:00:00.123') AS result;
98+
8599
-- period 为负数,无效返回错误
86100
mysql> select date_floor("2023-07-13 22:28:18", INTERVAL -5 MINUTE);
87101
ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.3)[E-218]Operation minute_floor of 2023-07-13 22:28:18, -5, 0001-01-01 00:00:00 out of range

i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/scalar-functions/date-time-functions/date-trunc.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
## 描述
1010

11-
DATE_TRUNC 函数用于将日期或时间值(datetime)按照指定的时间单位(time_unit)截断,即保留指定单位及更高层级的时间信息,将更低层级的时间信息清至最小日期时间。例如,按 “小时” 截断时,会保留年、月、日、小时,将分钟、秒等清零,按照年截断时,会把日,月截断为 xxxx-01-01。
11+
DATE_TRUNC 函数用于将日期或时间值按照指定的时间单位(time_unit)截断,即保留指定单位及更高层级的时间信息,将更低层级的时间信息清至最小日期时间。例如,按 “小时” 截断时,会保留年、月、日、小时,将分钟、秒等清零,按照年截断时,会把日,月截断为 xxxx-01-01。支持输入类型为 TIMESTAMPTZ, DATETIME, DATE
1212

1313
该函数与 postgresql 中的 [date_trunc函数](https://www.postgresql.org/docs/16/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC) 行为基本一致, 不同的是, doris暂不支持 second 单位以下的截断, postgresql 支持到 microsecond 。
1414

@@ -23,14 +23,13 @@ DATE_TRUNC(<time_unit>, <datetime>)
2323

2424
| 参数 | 说明 |
2525
| -- | -- |
26-
| `<date_or_time_part>` | 合法的日期表达式, 类型为 datetime 或者 date 类型, 具体 datetime 和 date 格式请查看 [datetime 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion)[date 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/date-conversion)) |
26+
| `<date_or_time_part>` | 合法的日期表达式,支持输入 date/datetime/timestamptz 类型,具体格式请查看 [timestamptz的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/timestamptz-conversion), [datetime 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion)[date 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/date-conversion) |
2727
| `<time_unit>` | 希望截断的时间间隔,可选的值如下:[`second`,`minute`,`hour`,`day`,`week`,`month`,`quarter`,`year`] |
2828

2929
## 返回值
3030

31-
返回与 datetime 类型一致的截断结果:
32-
- 输入 DATE 时,返回 DATE 类型;
33-
- 输入 DATETIME 或带时间的字符串时,返回 DATETIME(包含日期和截断后的时间)。
31+
返回类型与`<date_or_time_part>`类型保持一致, 返回对应的日期时间类型截断之后的结果(即保留指定单位及更高层级的时间信息,将更低层级的时间信息清至最小日期时间)
32+
- 若输入为 TIMESTAMPTZ 类型,则会先将其转换为 local_time(如:`2025-12-31 23:59:59+05:00` 在会话变量为`+08:00`的情况下代表的local_time为`2026-01-01 02:59:59`),再进行截断操作。
3433
- 对于带有 scale 的 datetime 类型,会截小数为零但保留 scale 返回.
3534

3635
特殊情况:
@@ -106,6 +105,15 @@ mysql> select date_trunc('2010-12-02 19:28:30.523', 'second');
106105
| 2010-12-02 19:28:30.000 |
107106
+-------------------------------------------------+
108107

108+
-- TimeStampTz类型样例, SET time_zone = '+08:00'
109+
-- 将变量值转换为 local_time(2026-01-01 02:59:59)后再做 DATE_TRUNC 截断操作
110+
SELECT DATE_TRUNC('2025-12-31 23:59:59+05:00', 'year');
111+
+-------------------------------------------------+
112+
| DATE_TRUNC('2025-12-31 23:59:59+05:00', 'year') |
113+
+-------------------------------------------------+
114+
| 2026-01-01 00:00:00+08:00 |
115+
+-------------------------------------------------+
116+
109117
---不支持的单位,返回错误
110118
select date_trunc('2010-12-02 19:28:30', 'quar');
111119
ERROR 1105 (HY000): errCode = 2, detailMessage = date_trunc function time unit param only support argument is year|quarter|month|week|day|hour|minute|second

i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/scalar-functions/date-time-functions/day-ceil.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,18 @@ DAY_CEIL(<date_or_time_expr>, <period>, <origin>)
3333

3434
| 参数 | 说明 |
3535
| -- | -- |
36-
| `<date_or_time_expr>` | 参数是合法的日期表达式,支持输入 date/datetime 类型,具体 datetime 和 date 格式请查看 [datetime 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion)[date 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/date-conversion) |
36+
| `<date_or_time_expr>` | 参数是合法的日期表达式,支持输入 date/datetime/timestamptz 类型,具体格式请查看 [timestamptz的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/timestamptz-conversion), [datetime 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion)[date 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/date-conversion) |
3737
| `<period>` | 参数是指定每个周期包含的天数,类型为 INT。若未指定,默认周期为 1 天。 |
3838
| `<origin>` | 参数是周期计算的起始基准时间,支持 date/datetime 类型|
3939

4040
## 返回值
4141

42-
返回的是一个日期或时间值,表示将输入值向上舍入到指定天数周期的结果。
42+
返回类型为 TIMESTAMPTZ, DATETIME 或 DATE。返回的是一个日期或时间值,表示将输入值向上舍入到指定天数周期的结果。
4343

4444
若输入有效,返回与 datetime 类型一致的取整结果:
45-
46-
`<date_or_time_expr>``<origin>` 输入都 DATE 类型时,返回 DATE 类型, 否则返回 DATETIME 类型.
45+
- 若输入为 TIMESTAMPTZ 类型,则会先将其转换为 local_time(如:`2025-12-31 23:59:59+05:00` 在会话变量为`+08:00`的情况下代表的local_time为`2026-01-01 02:59:59`),再进行 DAY_CEIL 计算操作。
46+
- 若输入的时间值(`<date_or_time_expr>``<period>`)同时包含 TIMESTAMPTZ 和 DATETIME 类型,则输出 DATETIME 类型。
47+
- `<date_or_time_expr>``<origin>` 输入都 DATE 类型时,返回 DATE 类型, 否则返回 DATETIME 类型.
4748

4849
特殊情况:
4950

@@ -128,6 +129,23 @@ select day_ceil('2023-07-13 19:30:00.123', 4, '2028-07-14 08:00:00');
128129
| 2023-07-17 08:00:00.000 |
129130
+---------------------------------------------------------------+
130131

132+
-- TimeStampTz类型样例, SET time_zone = '+08:00'
133+
-- 将变量值转换为 local_time(2026-01-01 02:59:59)后再做 DAY_CEIL 操作
134+
SELECT DAY_CEIL('2025-12-31 23:59:59+05:00');
135+
+---------------------------------------+
136+
| DAY_CEIL('2025-12-31 23:59:59+05:00') |
137+
+---------------------------------------+
138+
| 2026-01-02 00:00:00+08:00 |
139+
+---------------------------------------+
140+
141+
-- 若参数同时包含 TimeStampTz 和 Datetime 类型,则输出 DateTime 类型
142+
SELECT DAY_CEIL('2025-12-31 23:59:59+05:00', '2025-12-15 00:00:00.123');
143+
+------------------------------------------------------------------+
144+
| DAY_CEIL('2025-12-31 23:59:59+05:00', '2025-12-15 00:00:00.123') |
145+
+------------------------------------------------------------------+
146+
| 2026-01-02 00:00:00.123 |
147+
+------------------------------------------------------------------+
148+
131149
-- 周期为负数
132150
mysql> select day_ceil("2023-07-13 22:28:18", -2);
133151
ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.3)[E-218]Operation day_ceil of 2023-07-13 22:28:18, -2 out of range

i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/scalar-functions/date-time-functions/day-floor.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,18 @@ DAY_FLOOR(<date_or_time_expr>, <period>, <origin>)
3333

3434
| 参数 | 说明 |
3535
| -- | -- |
36-
| `<date_or_time_expr>` | 参数是合法的日期表达式,支持输入 date/datetime 类型,具体 datetime 和 date 格式请查看 [datetime 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion)[date 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/date-conversion) |
36+
| `<date_or_time_expr>` | 参数是合法的日期表达式,支持输入 date/datetime/timestamptz 类型,具体格式请查看 [timestamptz的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/timestamptz-conversion), [datetime 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/datetime-conversion)[date 的转换](../../../../../current/sql-manual/basic-element/sql-data-types/conversion/date-conversion) |
3737
| `<period>` | 参数是指定每个周期包含的天数,类型为 INT。若为负数或 0,返回 错误;若未指定,默认周期为 1 天。 |
3838
| `<origin>` | 参数是周期计算的起始基准时间,支持 date/datetime 类型。若未指定,默认值为 0001-01-01 00:00:00;若输入无效格式,返回 NULL。 |
3939

4040
## 返回值
4141

42-
返回的是一个日期或时间值表示将输入值向下舍入到指定天数周期的结果。
42+
返回类型为 TIMESTAMPTZ, DATETIME 或 DATE。返回的是一个日期或时间值,表示将输入值向下舍入到指定天数周期的结果。
4343

4444
若输入有效,返回与 datetime 类型一致的取整结果:
45-
46-
`<date_or_time_expr>``<origin>` 输入都 DATE 类型时,返回 DATE 类型, 否则返回 DATETIME 类型.
45+
- 若输入为 TIMESTAMPTZ 类型,则会先将其转换为 local_time(如:`2025-12-31 23:59:59+05:00` 在会话变量为`+08:00`的情况下代表的local_time为`2026-01-01 02:59:59`),再进行 DAY_FLOOR 计算操作。
46+
- 若输入的时间值(`<date_or_time_expr>``<period>`)同时包含 TIMESTAMPTZ 和 DATETIME 类型,则输出 DATETIME 类型。
47+
- `<date_or_time_expr>``<origin>` 输入都 DATE 类型时,返回 DATE 类型, 否则返回 DATETIME 类型.
4748

4849
特殊情况:
4950

@@ -119,6 +120,23 @@ select day_floor('2023-07-13 19:30:00.123', 4, '2028-07-14 08:00:00');
119120
| 2023-07-13 08:00:00.000 |
120121
+----------------------------------------------------------------+
121122

123+
-- TimeStampTz类型样例, SET time_zone = '+08:00'
124+
-- 将变量值转换为 local_time(2026-01-01 02:59:59)后再做 DAY_FLOOR 操作
125+
SELECT DAY_FLOOR('2025-12-31 23:59:59+05:00');
126+
+----------------------------------------+
127+
| DAY_FLOOR('2025-12-31 23:59:59+05:00') |
128+
+----------------------------------------+
129+
| 2026-01-01 00:00:00+08:00 |
130+
+----------------------------------------+
131+
132+
-- 若参数同时包含 TimeStampTz 和 Datetime 类型,则输出 DateTime 类型
133+
SELECT DAY_FLOOR('2025-12-31 23:59:59+05:00', '2025-12-15 00:00:00.123');
134+
+-------------------------------------------------------------------+
135+
| DAY_FLOOR('2025-12-31 23:59:59+05:00', '2025-12-15 00:00:00.123') |
136+
+-------------------------------------------------------------------+
137+
| 2026-01-01 00:00:00.123 |
138+
+-------------------------------------------------------------------+
139+
122140
---周期为负数,返回错误
123141
select day_floor("2023-07-13 22:28:18", -2);
124142
ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.3)[E-218]Operation day_floor of 2023-07-13 22:28:18, -2 out of range

0 commit comments

Comments
 (0)