Obtention du premier jour de la semaine dans MySQL
Lorsque l'on traite des données temporelles dans des bases de données, il est souvent nécessaire de déterminer le premier jour d'un élément donné semaine. Ceci est particulièrement utile pour regrouper des données et analyser les tendances au fil du temps.
L'énoncé du problème
Un utilisateur a une requête qui regroupe les données par semaines mais souhaite afficher le premier jour de chaque semaine au lieu de dates différentes. Ils ont identifié une date (03/01/2011) et doivent récupérer le premier jour de la semaine correspondant (02/01/2011).
Semaine commençant le dimanche
Si la semaine commence un dimanche, l'expression MySQL suivante peut être utilisée :
DATE_ADD(mydate, INTERVAL(1-DAYOFWEEK(mydate)) DAY)
Cette expression calcule le premier jour de la semaine en soustrayant le jour actuel de la semaine (en base 1) de la date donnée puis en ajoutant 1 jour.
Semaine commençant le lundi
Si la semaine commence le lundi, une expression différente est requise :
DATE_ADD(mydate, INTERVAL(-WEEKDAY(mydate)) DAY);
Dans ce cas, le jour actuel de la semaine (basé sur 0) est soustrait de la date donnée pour déterminer le nombre de jours à remonter pour atteindre lundi.
Exemple d'utilisation
Supposons que nous ayons la date suivante, qui représente le 03/01/2011 :
'2011-01-03'
Si l'on suppose que la semaine commence le dimanche, nous pouvons utiliser la première expression pour trouver la premier jour de la semaine :
SELECT DATE_ADD('2011-01-03', INTERVAL(1-DAYOFWEEK('2011-01-03')) DAY);
Cela produira le résultat suivant :
2011-01-02
Comme prévu, le premier jour de la semaine commençant le dimanche est le 02/01/2011.
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!