Maison  >  Article  >  base de données  >  Comment sélectionner des enregistrements pour une semaine spécifique dans MySQL : du lundi au dimanche ou du dimanche au samedi ?

Comment sélectionner des enregistrements pour une semaine spécifique dans MySQL : du lundi au dimanche ou du dimanche au samedi ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 21:40:02536parcourir

How to Select Records for a Specific Week in MySQL: Monday to Sunday or Sunday to Saturday?

MySQL : Sélection d'enregistrements pour une semaine

Problème initial :
Comment récupérer des enregistrements d'une table pour une semaine spécifique, étant donné une date spécifiée ?

Algorithme traditionnel :

  1. Déterminer le jour de la semaine pour la date spécifiée.
  2. Calculez le nombre de jours au lundi le plus proche.
  3. Calculez les dates du lundi et du dimanche de cette semaine.
  4. Exécutez une requête pour récupérer les enregistrements dans la plage de dates calculée.

Algorithme plus court (utilisant la fonction YEARWEEK() de MySQL) :

SELECT *
FROM   your_table
WHERE  YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)

Explication :

  • L'ANNÉE () prend une date et un paramètre facultatif (1 dans ce cas) qui spécifie le premier jour de la semaine (lundi).
  • En comparant YEARWEEK() pour la date spécifiée (date) à YEARWEEK () pour la date actuelle (CURDATE()), la requête sélectionne les enregistrements appartenant à la même semaine.

Répondre à la question supplémentaire :

Le à condition que la requête utilisée par l'utilisateur sélectionne les enregistrements pour la semaine du dimanche au samedi, au lieu du lundi au dimanche. Pour corriger cela, la modification suivante peut être apportée :

SELECT *
FROM   your_table
WHERE  YEARWEEK(`date`, 3) = YEARWEEK(CURDATE(), 3)
  • Le paramètre optionnel 3 précise que le premier jour de la semaine est lundi au lieu de dimanche.

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