Extraction des données MySQL de la semaine dernière (début dimanche)
Ce guide montre comment récupérer les données MySQL de la semaine dernière, en commençant le dimanche précédent. Nous exploiterons les fonctions de date de MySQL pour y parvenir.
La requête MySQL
La requête suivante filtre efficacement les données pour inclure uniquement les enregistrements des sept derniers jours, à partir du dimanche précédent :
<code class="language-sql">SELECT id FROM tbname WHERE date BETWEEN date_sub(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY) AND CURDATE();</code>
Explication détaillée
CURDATE()
: Renvoie la date actuelle.DAYOFWEEK(CURDATE())
: Détermine le jour de la semaine (1=dimanche, 2=lundi,...,7=samedi) pour la date actuelle.INTERVAL DAYOFWEEK(CURDATE())-1 DAY
: Calcule le nombre de jours à soustraire pour atteindre le dimanche précédent. Si aujourd'hui c'est dimanche, cela soustrait 0 jour ; si aujourd'hui c'est lundi, cela soustrait 1 jour, et ainsi de suite.date_sub(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY)
: Soustrait le nombre de jours calculé de la date actuelle, ce qui donne la date du dimanche précédent.BETWEEN ... AND CURDATE()
: sélectionne les enregistrements dont la colonne « date » se situe dans la plage allant du dimanche précédent à la date actuelle.Exemple illustratif
Considérez cet exemple de tableau :
id | date |
---|---|
2 | 2011-05-14 09:17:25 |
5 | 2011-05-16 09:17:25 |
6 | 2011-05-17 09:17:25 |
8 | 2011-05-20 09:17:25 |
15 | 2011-05-22 09:17:25 |
L'exécution de la requête ci-dessus renverra :
id |
---|
5 |
6 |
8 |
Cela récupère avec précision les identifiants (5, 6 et 8) correspondant aux entrées de la semaine dernière, à partir du dimanche précédent. Notez que les résultats spécifiques dépendront de la date actuelle à laquelle la requête est exécutée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!