跳到主要内容
版本:Stable-3.1

previous_day

功能

根据输入的日期值,返回它之前的那个星期几所对应的日期。比如 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

返回值说明

返回一个日期值。

如果 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