Reputation: 11
I am trying to order a query by date, from today until yesterday. So far I can do this with two queries
SELECT title, premiered
FROM movies
WHERE DATE_FORMAT(premiered, '%m-%d') >= DATE_FORMAT(NOW(), '%m-%d')
ORDER BY MONTH(premiered) ASC, DAY(premiered) ASC
Then
SELECT title, premiered
FROM movies
WHERE DATE_FORMAT(premiered, '%m-%d') < DATE_FORMAT(NOW(), '%m-%d')
ORDER BY MONTH(premiered) ASC, DAY(premiered) ASC
I can not seem to combine these two queries and have the output sorted correctly.
Upvotes: 0
Views: 64
Reputation: 164099
You want premiered
to have a difference from CURRENT_DATE
0 or 1 days:
SELECT title, premiered
FROM movies
WHERE DATEDIFF(CURRENT_DATE, premiered) IN (0, 1)
ORDER BY premiered
Edit for the new requirement:
SELECT title, premiered
FROM movies
WHERE premiered BETWEEN CURRENT_DATE - INTERVAL 1 DAY AND CURRENT_DATE + INTERVAL 1 MONTH
ORDER BY premiered
Upvotes: 1