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

 Oracle Discussion :

TIMESTAMP(0) m'affiche les fractions de seconde


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 10
    Points
    10
    Par défaut TIMESTAMP(0) m'affiche les fractions de seconde
    Bonjour à tous,

    Je débute sous Oracle 10g, et je rencontre un petit problème.

    En effet, dans une de mes tables, j'ai une colonne que j'ai définie en TIMESTAMP(0). Or, lorsque j'y importe des données grâce à SQL loader et un SYSDATE, je me retrouve avec une date et une heure comportant des fractions de seconde, du type : 28/07/10 18:35:00,000000000.

    Le (0) du TIMESTAMP(0) n'est-il pas censé supprimer les décimales à droite de la virgule ? Que dois je faire pour avoir une date sous cette forme : 28/07/10 18:35:00 ?

    Merci d'avance pour votre aide...

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Si vous voulez travailler à la seconde, utilisez le type date.
    D'ailleurs sysdate est une date, pas un timestamp (auquel cas il aurait fallu utiliser systimestamp) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select sysdate dt,
           systimestamp ts,
           cast(systimestamp as timestamp(0)) ts0
      from dual;
     
    DT			TS					TS0
    29/07/2010 14:36:43	29/07/2010 14:36:43.259000 +02:00	29/07/2010 14:36:43.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Merci pour votre réponse.

    Alors le fait de définir ma colonne en TIMESTAMP(0) ne tronque pas automatiquement les fractions ?

    D'autre part, un SYSDATE ne me donne pas les heures/minutes/secondes, mais seulement la date.

    Par exemple, si j'effectue la requête que vous m'avez donnée, je n'obtiens pas les mêmes réponses que vous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT sysdate dt,
           systimestamp ts,
           cast(systimestamp AS timestamp(0)) ts0
      FROM dual;
     
    29/07/10	29/07/10 14:46:21,684000000 +02:00	29/07/10 14:46:22,000000000
    Comment cela se fait-il ? Comment, au final, avoir la date et l'heure dans ma colonne sous le format DD/MM/YYYY HH24:MI:SS ?

  4. #4
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 306
    Points
    5 306
    Par défaut
    Pour 3000ieme fois sur ce forum, il y a une différence entre la valeur d'une date et sa représentation textuelle !

    Merci de lire les docs oracle sur le type DATE et la doc sur to_char() et to_date()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char(sysdate, 'DD/MM/YYYY HH24:MI:SS') from dual;
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS';
     
    selectr sysdate from dual;

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Comme je l'ai dit, je débute en Oracle, je suis juste en stage dans une boîte qui a une BDD dont je dois me servir pour un projet, donc je ne sais pas où trouver la doc, et je ne connais pas encore très bien TO_CHAR et TO_DATE, mes recherches s'étant plus portées sur le format TIMESTAMP vu que je pensais que c'était luii qui me posait problème...

    Bref, je suis encore un peu perdu, c'est tout nouveau pour moi, mais on ne peut pas dire que je n'ai pas fait de recherches !

    En tout cas, merci pour la réponse, ça répond à ma question et ça m'aide beaucoup...

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Regardez parmi la barre des liens plus haut, il y a tout ce qu'il faut pour bien débuter :
    • FAQ Oracle
    • TUTORIELS ORACLE
    • TUTORIELS SQL
    • SCRIPTS SQL


    Il faut essayer de maîtriser au mieux les concepts, notamment les types de données. Nombre de personnes ne le font pas (par manque de temps souvent) et au final les bases de données sont mal comprises et donc mal utilisées.

    Cette remarque sur les format de date revient très souvent sur le forum.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/09/2013, 19h45
  2. Excel n'affiche plus les fractions
    Par Biggy30 dans le forum Excel
    Réponses: 2
    Dernier message: 04/02/2012, 16h46
  3. minicom afficher les timestamp
    Par linuxATH dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 11/12/2010, 18h33
  4. Comment ne pas afficher les secondes ?
    Par lerieure dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/06/2009, 09h42
  5. Afficher les bonnes facettes
    Par WormsHL-Groove dans le forum OpenGL
    Réponses: 3
    Dernier message: 26/08/2002, 21h36

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