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

Langage SQL Discussion :

[Oracle 9] Conversion d'un format number en heure


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 15
    Points : 15
    Points
    15
    Par défaut [Oracle 9] Conversion d'un format number en heure
    Bonjour,

    J'ai une table avec un champ au format number qui contient une heure '151500' et je voudrais convertir dans une requête sql ce champ en format heure '15:15:00'.

    J'ai essayé de faire to_date('champ_heure', 'hh24:mi:ss') mais ca me renvoie n'importe quoi et je ne sais pas trop comment je dois m'y prendre pour que cela fonctionne.

    Par avance merci.

    Je travaille sous Oracle 9.

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 1 946
    Points : 2 225
    Points
    2 225
    Par défaut
    Cela marche très bien, mais attention :
    1) Il y a sans doute une faute de frappe si champ_heure est le nom d'une colonne, il ne faut pas de quote.
    2) to_date fabrique une date (étonnant, non ? ), c'est à dire avec le jour, le mois et l'année (le premier jour du mois en cours).
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    mai 2002
    Messages
    9 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2002
    Messages : 9 057
    Points : 30 673
    Points
    30 673
    Par défaut
    Je ne connais pas spécifiquement la fonction TO_DATE de Oracle, mais il me semble que la chaine de format devrait correspondre au contenu de la chaine à transcrire.
    Dans la version de SQL que j'utilise, je ferais la conversion en deux étapes : du numérique en chaîne de caractères, puis de la chaîne vers l'heure.
    ça donnerait quelque chose comme ça (désolé, je n'ai pas de BD sous la main pour vérifier):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CAST(CAST(champ_heure AS CHAR(6) FORMAT '999999') AS TIME FORMAT 'HHMISS')
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2005
    Messages : 1 673
    Points : 1 742
    Points
    1 742
    Par défaut
    Citation Envoyé par Médiat
    Cela marche très bien, mais attention :
    1) Il y a sans doute une faute de frappe si champ_heure est le nom d'une colonne, il ne faut pas de quote.
    2) to_date fabrique une date (étonnant, non ? ), c'est à dire avec le jour, le mois et l'année (le premier jour du mois en cours).
    Personnellement, les données que je récupère me "choquent" moins quand je procède de la manière suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TO_DATE('01/01/1900 ' || champ_heure, 'DD/MM/YYYY HH24:MI:SS')
    Ici, la date (jour, mois et année) est toujours la même ; seules les heures, minutes et secondes peuvent varier d'une ligne de la table à une autre
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Merci beaucoup, la solution de Magnus fonctionne nickel

    Bonne journée

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

Discussions similaires

  1. [PL/SQL] [9i] Format number
    Par ftrifiro dans le forum Oracle
    Réponses: 5
    Dernier message: 23/01/2010, 21h33
  2. [oracle 9i] Conversion Charset
    Par Charly94 dans le forum Oracle
    Réponses: 4
    Dernier message: 08/12/2006, 17h37
  3. [XSL] format-number disparition du signe négatif
    Par zozolh2 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/06/2006, 16h09
  4. [Oracle][VB] des liens pour formation
    Par gentarik dans le forum Oracle
    Réponses: 4
    Dernier message: 14/09/2005, 12h45
  5. format-number()
    Par Pierre63 dans le forum XMLRAD
    Réponses: 5
    Dernier message: 11/07/2003, 17h58

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