Page 1 sur 1

Bug possible au nouvel an

Posté : 26 mai 2007, 13:32
par orgerix
Bonjour,

J'utilise MySQL et dans un de mes script, j'ai cette requete :

Code : Tout sélectionner

SELECT * FROM bourse WHERE WEEK(jour)=WEEK(CURRENT_DATE()) and DAYOFWEEK(jour)=1
Est ce que le changement d'année risque de poser un problème ?

Et si oui, comment y remédier ?

Posté : 26 mai 2007, 13:37
par Hubert Roksor
Disons que sans aucun contexte et aucune info sur les données il est difficile de répondre.

Posté : 26 mai 2007, 13:43
par Cyrano
Ben rien ne devrait arriver de particulier. J'ai un peu de mal à saisir ce qui te fait penser qu'il pourrait arriver un bug... :-k

Posté : 26 mai 2007, 15:00
par orgerix
Et bien, pour moi, le 31 décembre appartiendrait à la semaine 53 et le premier janvier à la semaine 0 de l'année suivante.

Donc si cette requete est executé le 1er janvier, elle ne retournera rien...

Posté : 26 mai 2007, 16:20
par Hubert Roksor
le 31 décembre appartiendrait à la semaine 53 et le premier janvier à la semaine 0 de l'année suivante.
Je pense que c'est incorrect et que le 1er janvier appartient à la 53eme semaine de l'année précédente ou le 31 décembre à la 1ère semaine de l'année suivante, mais je ne vois toujours pas le rapport avec la requête donc voici mon conseil : tournevis.

Posté : 26 mai 2007, 19:12
par orgerix
le 31 décembre appartiendrait à la semaine 53 et le premier janvier à la semaine 0 de l'année suivante.
Je pense que c'est incorrect et que le 1er janvier appartient à la 53eme semaine de l'année précédente ou le 31 décembre à la 1ère semaine de l'année suivante, mais je ne vois toujours pas le rapport avec la requête donc voici mon conseil : tournevis.
Heu, comprend pas...

Sinon, le rapport avec la requete, c'est qu'elle me permet de récupérer les donée du premier jour de la semaine et de les comparer aux données actuelles.

Posté : 29 mai 2007, 16:46
par Ryle
Ben 'tour-ne-vis' ... c'est pour cela que les paquebots ont trois cheminés.... à moins que ce ne soit à cause du transatlantique ;)

Et si tu faisais simplement un test avec 2 valeurs qui encadrent le changement d'année (genre début 2008 qui tombe un mardi) pour voir ce que cela va te retourner ?

Mais dans la mesure ou le numéro de la semaine retourné par CURRENT_DATE() sera 0 après le 1er janvier, tu ne verras pas les enregistrements du lundi de la semaine 52. Ceci dit, je pense que tu peux facilement compenser cela en complétant ta condition avec un OR pour récupérer le lundi de la semaine 52 si la semaine courrante est égale à 0 :)