web-dev-qa-db-fra.com

Comment obtenir l'horodatage moins 6 semaines dans MySQL?

J'ai un champ nommé timestamp. C'est la dernière fois qu'un membre est connecté. Je cherche à inclure une clause where dans une requête pour quelque chose comme

WHERE timestamp > todays date - 6 weeks

Comment pourrais-je faire ça? J'essaie d'inclure uniquement les utilisateurs qui se sont connectés au cours des 6 dernières semaines.

Merci

44
sark9012

Je trouve cette syntaxe plus lisible que date_sub , mais dans les deux cas, cela fonctionne.

WHERE timestamp >= NOW() - INTERVAL 6 WEEK

Si vous voulez passer par "Aujourd'hui" (minuit) au lieu de "maintenant" (heure actuelle), vous utiliseriez ceci

WHERE timestamp >= DATE(NOW()) - INTERVAL 6 WEEK
64
Bryan Field
where column>=date_sub(now(), interval 6 week)
6
ajreal

Ce lien montre comment vous pourriez acquérir un horodatage d'hier en utilisant le format DATE_ADD(CURDATE(), INTERVAL -1 DAY), donc votre requête serait probablement:

WHERE timestamp > DATE_ADD(CURDATE(), INTERVAL -42 DAY)
3
Neil

Vous pouvez utiliser entre et now():

select somevalue 
from yourtable
where yourtimestamp between now() - interval 1 day and now()
2
Eric Leschinski