Substract days to a date in SQL

Here is how to substract a number of days to a date, including today, for several SQL dialects.

Get today date

To get the current date, most SQL dialects use CURRENT_DATE.

You can also get the current timestamp:

SQL Dialect
Function for current time
PostgresSQL
GETDATE()
Redshift
NOW()
BigQuery
CURRENT_TIMESTAMP()
MySQL
NOW()

Substract days to current date

To substract days to current date, for example to get yesterday’s date, it will depend on the SQL dialect.

Redshift and PostgreSQL

-- Method 1
SELECT CURRENT_DATE - INTERVAL '1 day';

-- Method 2
SELECT DATEADD('day', -1, CURRENT_DATE)

MySQL

-- Method 1
SELECT CURRENT_DATE - INTERVAL '1 day';

-- Method 2
SELECT DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY);

BigQuery

SELECT CURRENT_DATE - 1 day;