Перейти к основному содержимому

previous_day

Описание

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

Эта функция поддерживается начиная с версии 1.5.0. Она является противоположностью 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 |
+-------------------------------------------+

keyword

PREVIOUS_DAY, PREVIOUS, previousday