跳到主要内容
版本: 最新版本-3.5

previous_day

返回指定的星期几 (DOW) 在输入日期(DATE 或 DATETIME)之前发生的日期。 例如,previous_day('2023-04-06', 'Monday') 返回 ‘2023-04-06’ 之前发生的上一个星期一的日期。

该函数从 v3.1 开始支持。 它与 next_day 相反。

语法

DATE previous_day(DATETIME|DATE date_expr, VARCHAR dow)

参数

  • date_expr: 输入日期。 它必须是有效的 DATE 或 DATETIME 表达式。

  • dow: 星期几。 有效值包括一些区分大小写的缩写

    DOW_FULLDOW_2DOW_3
    星期日SuSun
    星期一MoMon
    TuesdayTuTue
    WednesdayWeWed
    ThursdayThThu
    FridayFrFri
    SaturdaySaSat

返回值

返回 DATE 值。

任何无效的 dow 都会导致错误。 dow 区分大小写。

如果传入无效日期或 NULL 参数,则返回 NULL。

示例

-- Return the date of the previous Monday that occurred before 2023-04-06. 2023-04-06 is Thursday and the date of the previous Monday is 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