QUARTER_CEIL
Описание
Округляет значение даты и времени вверх до ближайшей границы периода, заданного числом кварталов. Если указано исходное время, период рассчитывается относительно него.
Синтаксис
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 |
Примечания:
- Если период не указан, используется период в 1 квартал
- Если период не является положительным целым числом, функция возвращает 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