Перейти к основному содержимому
Версия: 2.0.x

previous_day

Возвращает дату первого указанного дня недели (DOW), который наступает до входной даты (DATE или DATETIME). Например, previous_day('2023-04-06', 'Monday') возвращает дату предыдущего понедельника до '2023-04-06'.

Эта функция поддерживается с версии 3.1. Она противоположна функции next_day.

Синтаксис

DATE previous_day(DATETIME|DATE date_expr, VARCHAR dow)

Параметры

  • date_expr: входная дата. Должно быть допустимым выражением типа DATE или DATETIME.

  • dow: день недели. Допустимые значения включают ряд сокращений, которые чувствительны к регистру:

    DOW_FULLDOW_2DOW_3
    SundaySuSun
    MondayMoMon
    TuesdayTuTue
    WednesdayWeWed
    ThursdayThThu
    FridayFrFri
    SaturdaySaSat

Возвращаемое значение

Возвращает значение типа DATE.

Любое недопустимое значение dow вызовет ошибку. Параметр dow чувствителен к регистру.

Возвращает NULL, если передана недопустимая дата или аргумент NULL.

Примеры

-- Возвращает дату предыдущего понедельника до 2023-04-06. 2023-04-06 — это четверг, и дата предыдущего понедельника — 2023-04-03.

MySQL > select previous_day('2023-04-06', 'Monday');
+--------------------------------------+
| previous_day('2023-04-06', 'Monday') |
+--------------------------------------+
| 2023-04-03 |
+--------------------------------------+

MySQL > select previous_day('2023-04-06', 'Tue');
+-----------------------------------+
| previous_day('2023-04-06', 'Tue') |
+-----------------------------------+
| 2023-04-04 |
+-----------------------------------+

MySQL > select previous_day('2023-04-06 20:13:14', 'Fr');
+-------------------------------------------+
| previous_day('2023-04-06 20:13:14', 'Fr') |
+-------------------------------------------+
| 2023-03-31 |
+-------------------------------------------+

Ключевые слова

PREVIOUS_DAY, PREVIOUS, previousday