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

PL/SQL Oracle Discussion :

Conversion VARCHAR2 to DATE


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Expert Oracle
    Inscrit en
    Mai 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Expert Oracle

    Informations forums :
    Inscription : Mai 2009
    Messages : 92
    Par défaut Conversion VARCHAR2 to DATE
    Salut tout le monde,

    J'aimerais savoir comment on fait pour convertir une chaine de caractère en date, sachant que cette chaîne de caractère ressemblerai à :

    2009-07-10T09:57:17.536+0400, c'est-à-dire : RRRR-DD-MM?HH:MI:SS.????? (les ? c'est des trucs que je connais pas encore !!)

    J'ai essayé la commande suivante, mais sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select TO_DATE('2009-07-10T09:57:17.536+0400', 'RRRR-MM-DD HH24:MI:SS') from dual
    Quelqu'un peut-il me faire des suggestions ?

    En vous remerciant d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Expert Oracle
    Inscrit en
    Mai 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Expert Oracle

    Informations forums :
    Inscription : Mai 2009
    Messages : 92
    Par défaut
    Pour information, j'ai trouvé qu'il s'agit du standard XSD Date time format, j'ai essayé aussi la commande suivante, toujours sans succès

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select TO_DATE('2009-07-10T09:57:17.536+0400', 'RRRR-MM-DDTHH:MI:SS.SSS+HHMI') from dual

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Une date s'arrête à la seconde et ne porte pas d'information de timezone.
    Par contre le timestamp répond à ce besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT TO_TIMESTAMP_TZ('2009-07-10T09:57:17.536+0400', 'YYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM') as ttz
    FROM dual;
     
    TTZ
    10/07/2009 09:57:17.536000000 +04:00

  4. #4
    Membre confirmé
    Homme Profil pro
    Expert Oracle
    Inscrit en
    Mai 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Expert Oracle

    Informations forums :
    Inscription : Mai 2009
    Messages : 92
    Par défaut
    Cool, merci Waldar pour ton aide, la commande est nickel.

    Dans un premier temps je vérifie que le VARCHAR2 a le bon format, ensuite je le convertit en DATE et je l'utilise normalement dans mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    BEGIN
                date    := TO_TIMESTAMP_TZ(date, 'RRRR-DD-MM"T"HH24:MI:SS.FFTZH:TZM');
    EXCEPTION
    WHEN OTHERS 
    THEN
                message_erreur                 := 'DATE INVALIDE';
                RETURN -1;
    END;
     
    v_date := TO_DATE(SUBSTR(date, 1, 10), 'RRRR-DD-MM');
    ---

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

Discussions similaires

  1. conversion varchar2 en date
    Par IcedLand dans le forum Sql Developer
    Réponses: 2
    Dernier message: 25/09/2007, 12h50
  2. Réponses: 8
    Dernier message: 05/02/2005, 16h38
  3. [date] conversion d'une date et compatibilité access
    Par WriteLN dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/01/2005, 14h03
  4. [CR] pb (concaténation/Conversion/Addition) sur date/heure
    Par marvel dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 20/12/2004, 15h31
  5. conversion String en Date (parse trop permissif)
    Par ciloulou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 13/09/2004, 18h36

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