Maison >base de données >tutoriel mysql >Voici quelques options de titre, en mettant l'accent sur l'aspect de la question : * Comment récupérer les enregistrements de la semaine en cours dans MySQL (à partir de lundi) ? * Requête MySQL : Pourquoi est-ce que j'obtiens des enregistrements pour le mauvais pipi

Voici quelques options de titre, en mettant l'accent sur l'aspect de la question : * Comment récupérer les enregistrements de la semaine en cours dans MySQL (à partir de lundi) ? * Requête MySQL : Pourquoi est-ce que j'obtiens des enregistrements pour le mauvais pipi

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 16:48:301077parcourir

Here are a few title options, focusing on the question aspect:

* How to Retrieve Records for the Current Week in MySQL (Starting on Monday)? 
* MySQL Query: Why am I Getting Records for the Wrong Week? 
* Selecting Records for the Current Week in MySQL:

Comment récupérer sélectivement les enregistrements de la semaine en cours dans MySQL

Pour obtenir les enregistrements de la semaine en cours dans une base de données MySQL, envisagez d'utiliser l'outil Fonction ANNÉESEMAINE(). Cette approche évite d'avoir à exécuter plusieurs instructions SQL.

En tirant parti de YEARWEEK(), vous pouvez spécifier son premier paramètre comme colonne de date (date dans votre cas) et définir le deuxième paramètre sur 1, garantissant que le la semaine commence à partir de lundi. En comparant le résultat à YEARWEEK(CURDATE(), 1), vous récupérez efficacement les enregistrements compris entre le lundi et le dimanche en cours.

Résoudre le problème de requête

La requête fournie sélectionne les enregistrements pour la période allant du 17 novembre 2013 (dimanche) au 23 novembre 2013 (samedi) au lieu du 18 novembre 2013 (lundi) au 24 novembre 2013 (dimanche). Cet écart est dû au fait que la base de données initialise par défaut la semaine à partir du dimanche, ce qui entraîne effectivement une plage hebdomadaire du dimanche au samedi.

Pour résoudre ce problème, vous devez définir manuellement le deuxième paramètre de YEARWEEK() sur 1. ou indiquez explicitement que le jour de début de la semaine est lundi à l'aide de la fonction WEEK(), comme démontré dans la requête corrigée suivante :

<code class="sql">SELECT *
FROM   your_table
WHERE  YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)</code>

Vous pouvez également utiliser la fonction WEEK() pour définir explicitement le début de la semaine. jour au lundi :

<code class="sql">SELECT *
FROM   your_table
WHERE  WEEK(`date`, 1) = WEEK(CURDATE(), 1)</code>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn