MySQL selects all dates that are increments in x days

Can I request all dates in the future, which are increments of x days?

i.e.

SELECT * FROM bookings WHERE date >= CURDATE() AND ( date = CURDATE() + INTERVAL 6 DAY OR date = CURDATE() + INTERVAL 12 DAY OR date = CURDATE() + INTERVAL 18 DAY etc. ) 
+6
source share
2 answers

Sort of:

 SELECT * FROM table WHERE date >= CURDATE() AND DATEDIFF(CURDATE(), date) % 6 = 0 

Datediff returns the number of days difference, and % 6 says it returns the remainder when divided by six.

+9
source

Yes. However, your logic is corrupted. You probably meant

 SELECT * FROM table WHERE date = CURDATE() + INTERVAL 6 DAY OR date = CURDATE() + INTERVAL 12 DAY OR date = CURDATE() + INTERVAL 18 DAY 

And do not use table names such as β€œtable” and field names such as β€œdate” (ie reserved words).

-3
source

Source: https://habr.com/ru/post/969874/


All Articles