Categories:
Date & Time Functions

PREVIOUS_DAY

Returns the date of the first specified DOW (day of week) that occurs before the input date.

See also:
NEXT_DAY

Syntax

PREVIOUS_DAY( <date_or_time_expr> , <dow> )

Arguments

date_or_time_expr
Specifies the input date; can be a date or timestamp.
dow_string

Specifies the day of week used to calculate the date for the previous day. The value can be a string literal or an expression that returns a string. The string must start with the first two characters (case-insensitive) of the day name:

  • su (Sunday)
  • mo (Monday)
  • tu (Tuesday)
  • we (Wednesday)
  • th (Thursday)
  • fr (Friday)
  • sa (Saturday)

Any leading spaces and trailing characters, including spaces, in the string are ignored.

Usage Notes

  • The return value is always a date regardless of whether date_or_time_expr is a date or timestamp.

Examples

Return the date of the previous Friday that occurred before the current date:

SELECT CURRENT_DATE() AS "Today's Date",
       PREVIOUS_DAY("Today's Date", 'Friday ') AS "Previous Friday";

+--------------+-----------------+
| Today's Date | Previous Friday |
|--------------+-----------------|
| 2018-06-12   | 2018-06-08      |
+--------------+-----------------+