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 :

Problème de to_date


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 43
    Points : 31
    Points
    31
    Par défaut Problème de to_date
    Bonjour à tous,

    J'ai un problème avec la récupération de la valeur de l'heure dans un to_date.

    Voici la ligne de code que j'effectue :

    heure_action := to_date(enr.ACT_DTE, 'HH24:MM:SS');
    heure_fin_action := to_date(enr.END_ACT_DTE, 'HH24:MI:SS');

    Les deux variables sont bien sur déclarées en tant que DATE.

    Quand j'exécute ma procédure, Oracle me dit ceci : "hour must be between 0 and 23".

    Je trouve ça bizard car dans la ma base de données, ACT_DTE et END_ACT_DTE contiennent par exemple : 30/08/2012 14:51:00.
    14 est bien compris entre 0 et 23 donc je ne comprend pas d'où vient l'erreur...

    J'espére que vous pourrez m'aider car je galére depuis 1 jour et demi (week-end non compris). N'hésitez pas à me demander des explications si ce que je vous explique n'est pas clair.

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par lllhuhdklll Voir le message
    ...
    heure_action := to_date(enr.ACT_DTE, 'HH24:MM:SS');
    heure_fin_action := to_date(enr.END_ACT_DTE, 'HH24:MI:SS');

    Les deux variables sont bien sur déclarées en tant que DATE.
    ...
    Si les deux variable sont bien déclarées en tant que DATE pourquoi voulez-vous appliquer la fonction TO_DATE ? Avez vous compris à quoi To_Date sert ?
    TO_DATE converts char of CHAR, VARCHAR2, NCHAR, or NVARCHAR2 data type to a value of DATE data type.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Effectivement, je ne pense pas avoir compris cette fonction, mais votre citation m'éclaire dessus.

    Bref, ce que je veux faire c'est séparer la date et l'heure pour les mettre dans deux variable différentes.

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Utilisez To_Char quoi que je doute que c'est vraiment ça que vous voulez faire.

  5. #5
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    bonjour

    date n'est pas heure,
    ce formtage est erroné, et si tu veux recuperer l'heure y compris date tu dois mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_date(enr.ACT_DTE,'dd/mm/yyyy HH24:MI:SS');
    en plus si tu veux extraire juste l'heure essaie la fonction substr
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Utilisez To_Char quoi que je doute que c'est vraiment ça que vous voulez faire.
    Si je met to_char à la place de to_date, il me dit : "not a valid month".


    Citation Envoyé par boussafi Voir le message
    si tu veux extraire juste l'heure essaie la fonction substr
    Merci, je pencherai plutôt sur cette solution qui me parait la plus pertinente dans mon cas.

    Je verrais ça demain car là je dois y aller.
    Bonne soirée à tous et merci de votre aide.

  7. #7
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Si je met to_char à la place de to_date, il me dit : "not a valid month".
    Peut être que c'est parce que vous utilisez MM à la place de MI, n'est pas ça ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Peut être que c'est parce que vous utilisez MM à la place de MI, n'est pas ça ?
    J'utilise bien MI...

  9. #9
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    heure_action := to_date(enr.ACT_DTE, 'HH24:MM:SS');

  10. #10
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    Cette instruction ne marchera jamais meme si on remplace MM par MI.
    Le formatage d'une date doit avoir au moins 'DD/MM/YYYY' et pour afficher l'heure en plus on doit avoir 'DD/MM/YYYY HH24:MI:SS''.
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  11. #11
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par boussafi Voir le message
    Cette instruction ne marchera jamais meme si on remplace MM par MI.
    Le formatage d'une date doit avoir au moins 'DD/MM/YYYY' et pour afficher l'heure en plus on doit avoir 'DD/MM/YYYY HH24:MI:SS''.
    @boussafi
    Pourquoi voulez-vous appliquer la fonction To_Date à une DATE ?

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par boussafi Voir le message
    Le formatage d'une date doit avoir au moins 'DD/MM/YYYY' et pour afficher l'heure en plus on doit avoir 'DD/MM/YYYY HH24:MI:SS''.
    Mais je veux que dans ma variable il n'y ai que l'heure et non la date, car je fais des supérieurs/inférieurs sur l'heure.

  13. #13
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 
    Connected as mni
     
    SQL> 
    SQL> Select To_Char(sysdate,'HH24')
      2    from dual
      3  /
     
    TO_CHAR(SYSDATE,'HH24')
    -----------------------
    11
     
    SQL>

  14. #14
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par lllhuhdklll Voir le message
    Mais je veux que dans ma variable il n'y ai que l'heure et non la date, car je fais des supérieurs/inférieurs sur l'heure.
    Donc, dans ce cas là, les variables que tu utilise doivent etre déclarées en type VARCHAR2 et non pas en DATE . Je trouve que la solution que mnitu a proposé va repondre à ton besoin en redéclarant les variables en VARCHAR2
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par boussafi Voir le message
    Donc, dans ce cas là, les variables que tu utilise doivent etre déclarées en type VARCHAR2 et non pas en DATE . Je trouve que la solution que mnitu a proposé va repondre à ton besoin en redéclarant les variables en VARCHAR2
    Oui ça peut surement répondre à mon problème mais je peut pas tester tout de suite car au bout de 5 minutes de compilation, j'ai l'erreur suivante :
    "ORA-04021 : timeout occured while waiting to lock object X".

    Je cherche l'erreur pour pouvoir tester avec un to_char.

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Merci à tous,

    Le problème est résolu en déclarant mes 4 variables en VRACHAR2 et en faisant to_char de l'heure ou de la date.

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

Discussions similaires

  1. [10g] Problème avec l'instruction START WITH TO_DATE
    Par NFHnv dans le forum PL/SQL
    Réponses: 6
    Dernier message: 18/10/2013, 23h45
  2. Problème to_date PL/SQL
    Par saad.elalami dans le forum PL/SQL
    Réponses: 2
    Dernier message: 10/09/2012, 09h19
  3. Réponses: 14
    Dernier message: 17/05/2011, 11h49
  4. Problème avec To_date
    Par fanch17 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 14/08/2003, 12h34
  5. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18

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