📅 1. Last 7 Days
SELECT * FROM orders
WHERE order_date >= CURDATE() - INTERVAL 7 DAY;
🗓️ 2. This Month
SELECT * FROM orders
WHERE MONTH(order_date) = MONTH(CURDATE())
AND YEAR(order_date) = YEAR(CURDATE());
🗓️ 3. Last Month
SELECT * FROM orders
WHERE MONTH(order_date) = MONTH(CURDATE() - INTERVAL 1 MONTH)
AND YEAR(order_date) = YEAR(CURDATE() - INTERVAL 1 MONTH);
📆 4. This Year
SELECT * FROM orders
WHERE YEAR(order_date) = YEAR(CURDATE());
📆 5. Last Year
SELECT * FROM orders
WHERE YEAR(order_date) = YEAR(CURDATE() - INTERVAL 1 YEAR);
📈 6. Last 30/90 Days
-- Last 30 days
SELECT * FROM orders
WHERE order_date >= CURDATE() - INTERVAL 30 DAY;
-- Last 90 days
SELECT * FROM orders
WHERE order_date >= CURDATE() - INTERVAL 90 DAY;
🗓️ 7. Between First and Last Day of a Month
-- Last month's range
SELECT * FROM orders
WHERE order_date BETWEEN
DATE_FORMAT(CURDATE() - INTERVAL 1 MONTH, '%Y-%m-01') AND
LAST_DAY(CURDATE() - INTERVAL 1 MONTH);
🔁 8. Week-Based (Monday to Sunday)
🟢 This Week
SELECT * FROM orders
WHERE YEARWEEK(order_date, 1) = YEARWEEK(CURDATE(), 1);
🔵 Last Week
SELECT * FROM orders
WHERE YEARWEEK(order_date, 1) = YEARWEEK(CURDATE() - INTERVAL 1 WEEK, 1);