Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélectionnez les enregistrements d'une semaine précédente dans mysql

Je pense qu'il vous manque INTERVAL au début de 1 week :

SELECT *
FROM emails
WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), INTERVAL 1 week));

Voici une requête que j'ai exécutée qui fonctionne pour le DATE_SUB() partie :

SELECT *
FROM wp_posts
WHERE post_modified > DATE_SUB(CURDATE(), INTERVAL 4 WEEK);

Vous pouvez utiliser une valeur négative pour effectuer une requête "N semaines avant la date donnée" afin que quelque chose comme ceci fonctionne :

SELECT *
FROM wp_posts
WHERE post_modified > DATE_SUB(CURDATE(), INTERVAL -1 WEEK);

Ou :

SELECT *
FROM emails
WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), INTERVAL -1 week))