- Categories:
PREVIOUS_DAY¶
Returns the date of the first specified day of week (DOW) that occurs before the input date.
Syntax¶
PREVIOUS_DAY( <date_or_timetamp_expr> , <dow> )
Arguments¶
- date_or_timestamp_expr
- A date or a timestamp, or an expression that can be evaluated to a date or a 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. 
Returns¶
This function returns a value of type DATE, even if date_or_timetamp_expr is a 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 |
|--------------+-----------------|
| 2025-05-06   | 2025-05-02      |
+--------------+-----------------+
Your output will be different because the example uses the CURRENT_DATE function.