|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() |
Bonjour,
J'ai un petit problème sous Oracle 9.2. Lorsque j'exécute cette requête : Code :
SELECT TO_CHAR( TO_DATE('30/12/2007', 'DD/MM/YYYY'), 'YYYYIW') FROM DUAL En revanche, lorsque j'exécute celle-ci : Code :
SELECT TO_CHAR( TO_DATE('31/12/2007', 'DD/MM/YYYY'), 'YYYYIW') FROM DUAL Si quelqu'un a une explication, je l'en remercie d'avance ! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 459 ![]() |
Parce que la semaine IW est la semaine ISO.
La semaine 1 de 2008 commence le lundi 31/12/2007 Donc YYYY = 2007 IW = 01 Je me suis aussi fais avoir ;-)
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() |
Arf ... effectivement, y'avais une finte ...
Y a-t-il un moyen de contourner ça pour obtenir 200753 ? ou faut-il créer sa propre fonction ? |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 459 ![]() |
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() |
Et oui je suis bien d'accord avec ça, mais du coup si je fais ça pour 2008, il me fait commencer les semaines au mardi, et moi je veux qu'elles démarrent au lundi !
|
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() ![]() Inscription : décembre 2005 Messages : 315 ![]() |
A ma connaissance, la semaine 53 n'existe pas en 2007.
La rupture de n° de semaine (pour déterminer la semaine n° 1) se réalise vis à vis de la première semaine contenant le mercredi. Donc les derniers jours (2 au plus) de l'année peuvent effectivement tomber en semaine 1. Chris. |
|
|
00
|
|
|
#7 | ||||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 459 ![]() |
Voici la solution qu'il me semble avoir choisi
Code :
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||||
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() |
Ok merci, j'ai utilisé ce qu'il me fallait dans la requête et ça a l'air de tourner comme il faut !
Encore merci ! |
|
|
00
|
|
|
#9 | ||||||
|
Membre éprouvé
![]() Inscription : septembre 2004 Messages : 465 ![]() |
Bonjour.
Ayant été confronté au problème, je vous soumets une solution qui fonctionne. Celle proposée ci-dessus ne fonctionne pas pour tous les cas. Exemple: Code :
Il n'y a pas toujours 53 semaines dans une année, on a donc 2 soucis: d'une part, les derniers jours de l'année appartiennent parfois à la semaine 1 de l'année suivante, d'autre part, les premiers jours appertiennent parfois à la semaine 53 de l'année précédente. Je n'ai pas trouvé d'autre solution que de traiter ces 2 cas particuliers. Voici une requête qui fonctionne à tous les coups, avec 2 exemples critiques: Code :
Code :
++ |
||||||
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() Inscription : août 2005 Messages : 316 ![]() |
J'ai peut-être rien compris mais
en utilisant IYYY au lieu de YYYY on a bien l'année ISO dons IW/IYYY nous donne bien le numeros de semaine ISO |
|
|
00
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 459 ![]() |
Tout simplement.J'ai complètement zappé ce format sur les dates.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#12 |
|
Membre éclairé
![]() ![]() Inscription : décembre 2005 Messages : 315 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com