IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

TO_DATE et norme ISO


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Par défaut TO_DATE et norme ISO
    Bonjour,

    J'aimerais obtenir une date à partir d'un numéro de semaine et une année, en norme ISO.
    Malheureusement TO_DATE ne semble pas fonctionner avec les formats standards ISO, qui sont pourtant supportés par TO_CHAR :
    TO_DATE('29-2007','IW-IYYY') renvoie une exception ORA-01820 "format code cannot appear in date input format"

    Quelqu'un aurait-il une idée ?

    Merci

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Il me semble quand meme qu'il faut un jour dans la semaine ?
    Lequel ?

  3. #3
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Faites attention à ce que vous tapez !

    IW-YYYY ou IW-IYYY ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Par défaut
    Bonjour et merci de vos réponses

    @Garuda : l'ajout du jour de la semaine 'D-IW-IYYY' ne change rien, ce sont les ,formats ISO qui ne semblent pas supportés

    @LeoAnderson: IYYY correspond à l'année de la semaine ISO
    Par exemple, le 31 décembre 2007 fait partie de la semaine 1 de 2008 en ISO, pour cette date YYYY renvoie 2007 et IYYY renvoie 2008

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Par défaut
    Pour ceux que le problème intéresse voilà comment j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	   dte_courante := NULL;
       	   dte_tmp := TO_DATE( CONCAT('1/12/',TO_CHAR(p_annee-1)),'DD/MM/YYYY' );
       	   LOOP
    		   IF TO_CHAR(dte_tmp,'D-IW-IYYY') = CONCAT( CONCAT(TO_CHAR(i),CONCAT('-',TO_CHAR(p_semaine))),
    		   	  							   	 		 CONCAT('-',TO_CHAR(p_annee)) ) THEN
    		   	  dte_courante := dte_tmp;
    		   END IF;
       	   	   EXIT WHEN dte_courante IS NOT NULL;
    		   dte_tmp := dte_tmp + 1;
    	   END LOOP;
    Les autres solutions restent bienvenues..

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Attention to_char(p_semaine) si p_semaine < 10 ce sera pas bon (tu auras '-1-' et la comparaison sera fausse.
    Faut faire un LPAD(to_char(p_semaine), 2, '0')

  7. #7
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Tu peux ausi te baser sur ce post
    http://www.developpez.net/forums/sho...hlight=semaine

    Et aussi éviter les CONCAT, préfère les || c'est plus lisible.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Par défaut
    Merci.
    On va dire que c'est résolu.

  9. #9
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par McM
    Et aussi éviter les CONCAT, préfère les || c'est plus lisible.
    oui, mais attention sur certains OS les || et les ¦¦ se confondent. Pour un maximum de portabilité des scripts entre les OS, le concat est préférable

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ISO] Normes ISO 25000
    Par popek dans le forum Qualité
    Réponses: 0
    Dernier message: 27/04/2009, 22h46
  2. [Imprimante] norme ISO/IEC 24712:2006
    Par looping dans le forum Périphériques
    Réponses: 0
    Dernier message: 17/02/2009, 08h34
  3. Fichier .rub et norme ISO
    Par nakac dans le forum Automation
    Réponses: 0
    Dernier message: 07/05/2008, 10h21
  4. Numéro de la semaine selon la norme ISO
    Par steelidol dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 02/02/2006, 15h05
  5. Recherche norme ISO 3309
    Par genki dans le forum Juridique
    Réponses: 2
    Dernier message: 30/10/2004, 22h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo