QUARTER_CEIL
描述
将日期时间值向上取整到最近的指定季度周期的下个周期起点。如果指定了起始时间(origin),则以该时间为基准计算周期。
提示
QUARTER_CEIL 支持从 3.0.8 和 3.1.0 版本开始。
语法
QUARTER_CEIL(<datetime>)
QUARTER_CEIL(<datetime>, <origin>)
QUARTER_CEIL(<datetime>, <period>)
QUARTER_CEIL(<datetime>, <period>, <origin>)
参数
参数 | 说明 |
---|---|
<datetime> | 需要向上取整的日期时间值,类型为 DATE 或 DATETIME |
<period> | 季度周期值,类型为 INT,表示每个周期包含的季度数 |
<origin> | 周期的起始时间点,类型为 DATE 或 DATETIME,默认值为 0001-01-01 00:00:00 |
注意:
- 不指定 period 时,等价于以 1 个季度为周期
- 当 period 不为正整数时,函数结果将为 NULL
- 结果总是向过去时间取整
- 返回值的时间部分总是 00:00:00
返回值
当 <datetime>
为 DATE 类型时,返回类型为 DATE。
当 <datetime>
为 DATETIME 类型时,返回类型为 DATETIME。
表示向上取整后的日期时间值。结果的时间部分将被设置为 00:00:00。
举例
从 '0001-01-01 00:00:00' 开始,每 5 / 4 个季度为一个周期,返回距离输入日期最近的下一个周期起点。
SELECT QUARTER_CEIL("2023-07-13 22:28:18", 5), QUARTER_CEIL("2023-07-13 22:28:18", 4);
+----------------------------------------+----------------------------------------+
| QUARTER_CEIL("2023-07-13 22:28:18", 5) | QUARTER_CEIL("2023-07-13 22:28:18", 4) |
+----------------------------------------+----------------------------------------+
| 2024-10-01 00:00:00.000000 | 2024-01-01 00:00:00.000000 |
+----------------------------------------+----------------------------------------+
以 '2022-01-01 00:00:00' 为周期起点,分别以 2 / 4 个季度为一个周期,返回距离输入日期最近的下一个周期起点。
SELECT QUARTER_CEIL("2023-03-13 22:28:18", 2, "2022-01-01 00:00:00"), QUARTER_CEIL("2023-07-13 22:28:18", 4, "2022-01-01 00:00:00");
+---------------------------------------------------------------+---------------------------------------------------------------+
| QUARTER_CEIL("2023-03-13 22:28:18", 2, "2022-01-01 00:00:00") | QUARTER_CEIL("2023-07-13 22:28:18", 4, "2022-01-01 00:00:00") |
+---------------------------------------------------------------+---------------------------------------------------------------+
| 2023-07-01 00:00:00 | 2024-01-01 00:00:00 |
+---------------------------------------------------------------+---------------------------------------------------------------+
最佳实践
还可参阅 date_ceil