Последнее обновление
TO_MONDAY
Описание
Округляет дату или значение datetime вниз до ближайшего понедельника. Для значений параметра даты 1970-01-01, 1970-01-02, 1970-01-03 и 1970-01-04 действует особое правило: возвращается дата 1970-01-01.
Синтаксис
TO_MONDAY(`<date_or_time_expr>`)
Параметры
| Параметр | Описание |
|---|---|
<date_or_date_expr> | Входное значение даты и времени; поддерживаются типы date/datetime. Сведения о форматах datetime и date см. в разделах Преобразование datetime и Преобразование date |
Возвращаемое значение
Возвращает значение типа DATE (формат YYYY-MM-DD), соответствующее понедельнику недели, к которой относится входная дата.
- Если входное значение — любая из дат 1970-01-01, 1970-01-02, 1970-01-03, 1970-01-04, всегда возвращается 1970-01-01;
- Если входное значение — NULL, возвращается NULL;
Примеры
-- 2022-09-10 is Saturday, returns the Monday of that week (2022-09-05)
SELECT TO_MONDAY('2022-09-10') AS result;
+------------+
| result |
+------------+
| 2022-09-05 |
+------------+
-- input value of datetime type
SELECT TO_MONDAY('2022-09-10 12:22:15') AS result;
+------------+
| result |
+------------+
| 2022-09-05 |
+------------+
-- Returns the Monday of the week for dates before 1970
SELECT TO_MONDAY('1022-09-10') AS result;
+------------+
| result |
+------------+
| 1022-09-09 |
+------------+
-- Date that is already Monday: returns itself
SELECT TO_MONDAY('2023-10-09') AS result; -- 2023-10-09 is Monday
+------------+
| result |
+------------+
| 2023-10-09 |
+------------+
-- Special dates
SELECT TO_MONDAY('1970-01-02'),TO_MONDAY('1970-01-01'),TO_MONDAY('1970-01-03'),TO_MONDAY('1970-01-04');
+-------------------------+-------------------------+-------------------------+-------------------------+
| TO_MONDAY('1970-01-02') | TO_MONDAY('1970-01-01') | TO_MONDAY('1970-01-03') | TO_MONDAY('1970-01-04') |
+-------------------------+-------------------------+-------------------------+-------------------------+
| 1970-01-01 | 1970-01-01 | 1970-01-01 | 1970-01-01 |
+-------------------------+-------------------------+-------------------------+-------------------------+
-- Input NULL, returns NULL
SELECT TO_MONDAY(NULL) AS result;
+--------+
| result |
+--------+
| NULL |
+--------+