MySQL possède un grand nombre de fonctions pour gérer les dates et le temps. Il est possible de récupérer le numéro calendaire d’une semaine avec la fonction week. Dimanche 5 avril nous étions semaine 14. La fonction week nous le confirme:
mysql> SELECT week('2009-04-05');
+--------------------+
| week('2009-04-05') |
+--------------------+
| 14 |
+--------------------+
Lundi 6 avril, nouvelle semaine, on passe donc à la semaine 15:
mysql> SELECT week('2009-04-06');
+--------------------+
| week('2009-04-06') |
+--------------------+
| 14 |
+--------------------+
Souci !!! Le résultat n’est pas celui espéré (14 au lieu de 15). En fait la fonction week prend un deuxième paramètre optionnel, qui permet de « régler la précision » (compter sur 53 ou 54 semaines, commencer la semaine un dimanche ou un lundi…) bref elle est complète et complexe…
Le réglage usuel est de mettre le deuxième paramètre à 3 ! ou alors d’utiliser la fonction WEEKOFYEAR.
mysql> SELECT weekofyear('2009-04-05');
+--------------------------+
| weekofyear('2009-04-05') |
+--------------------------+
| 14 |
+--------------------------+
mysql> SELECT weekofyear('2009-04-06');
+--------------------------+
| weekofyear('2009-04-06') |
+--------------------------+
| 15 |
+--------------------------+
Tags: Astuce, semaine calendaire, week, weekofday
This entry was posted
on Mercredi, avril 8th, 2009 at 0:53 and is filed under Astuce, MySQL.
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.


Leave a reply