276 votes

Comment soustraire 30 jours de la date courante dans mysql ?

Comment soustraire 30 jours de la date actuelle dans mysql ?

SELECT * FROM table
WHERE exec_datetime BETWEEN DATEDIFF(NOW() - 30 days) AND NOW();

0 votes

Je préfère SELECT * FROM table WHERE exec_datetime >= DATE_SUB(NOW(), INTERVAL 30 DAY);

3voto

Varaj Vignesh Points 73
SELECT date_format(current_date - INTERVAL 50 DAY,'%d-%b-%Y')

Vous pouvez formater en utilisant le format de date dans SQL.

2voto

Pacerier Points 15960

Si vous n'avez besoin que de la date et non de l'heure, utilisez :

select*from table where exec_datetime
between subdate(curdate(), 30)and curdate();

Depuis curdate() omet la composante temporelle, c'est potentiellement plus rapide que now() et plus "sémantiquement correct" dans les cas où seule la date vous intéresse.

En outre, subdate() est potentiellement plus rapide que l'utilisation de la surcharge de 2-arité de interval . interval est destiné aux cas où vous avez besoin d'une composante non journalière.

0voto

zzapper Points 610

Une autre voie

SELECT COUNT(*) FROM tbl_debug WHERE TO_DAYS(`when`) < TO_DAYS(NOW())-30 ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X