Maison  >  Article  >  base de données  >  Comment interroger MySQL pour les enregistrements de la semaine en cours ?

Comment interroger MySQL pour les enregistrements de la semaine en cours ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 01:46:03780parcourir

How to Query MySQL for Records Within the Current Week?

Interroger MySQL pour les enregistrements de la semaine en cours

La détermination des enregistrements de la semaine en cours dans une base de données MySQL peut être réalisée par différentes approches. Une méthode proposée consiste à calculer le jour de la semaine, le lundi précédent, la date du lundi, la date du dimanche futur et à faire une demande basée sur les dates calculées. Cependant, une approche plus concise utilisant la fonction YEARWEEK() est disponible.

YEARWEEK() est une fonction MySQL qui renvoie le numéro de semaine d'une date donnée, avec le jour de début par défaut défini sur dimanche. Pour rechercher des enregistrements dans la semaine en cours, y compris du lundi au dimanche, utilisez YEARWEEK() comme suit :

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

Cette requête détermine le numéro de semaine pour la colonne de date de chaque ligne, en considérant le dimanche comme le premier jour de la semaine. semaine (paramètre 1). Il compare ensuite le numéro de semaine de chaque ligne au numéro de semaine de la date actuelle (CURDATE()), récupérant efficacement les enregistrements qui se situent dans la même semaine.

Correction de la plage de dates pour les enregistrements hebdomadaires

Correction de la plage de dates pour les enregistrements hebdomadaires

<code class="sql">SELECT *
FROM   temp
WHERE  yearweek(`date`) = yearweek(curdate())</code>

L'exemple de requête fourni dans la question :

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

récupère incorrectement les enregistrements du dimanche au samedi (17.11.2013 au 23.11.2013) en raison du jour de début par défaut du dimanche. Pour ajuster le lundi comme premier jour de la semaine et récupérer les enregistrements du 18.11.2013 au 24.11.2013, utilisez la requête modifiée suivante :

En spécifiant le jour de début comme lundi (paramètre 1), la fonction YEARWEEK() garantit que les limites de la semaine s'alignent sur la plage souhaité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!

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