MySQL: Time Intervals (Last x Days/Weeks/…)

Here is an example that uses date functions. The following query selects all rows with a date_col value from within the last 30 days:

SELECT something FROM tbl_name WHERE date_col >= DATE_SUB(CURDATE(),INTERVAL 30 DAY) ;

//////////////////////////////////////////////////////////////////////////////////////////////////


– current week (starting with Sunday)

SELECT
COUNT(*) AS rows
FROM Orders
WHERE YEARWEEK(ODate) = YEARWEEK(CURRENT_DATE)
;

– last week (starting with Sunday)

SELECT
COUNT(*) AS rows
FROM Orders
WHERE YEARWEEK(ODate) = YEARWEEK(CURRENT_DATE – INTERVAL 7 DAY)
;

– last month

SELECT
COUNT(*) AS rows
FROM Orders
WHERE
SUBSTRING(ODate FROM 1 FOR 7) =
SUBSTRING(CURRENT_DATE – INTERVAL 1 MONTH FROM 1 FOR 7)
;


Learn more in the Date and Time Functions documentation section.

This entry was posted in MySQL. Bookmark the permalink.

Leave a Reply