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 :

Comment enregistrer un date en format année, mois, jour, heure, minute, seconde


Sujet :

Oracle

  1. #1
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut Comment enregistrer un date en format année, mois, jour, heure, minute, seconde
    Bonjour, je vous soumets ma préoccupation.
    j'ai une date que je voudrais enregistrer sous cette forme yyyy-MM-dd HH:mm:ss en format date.
    Mais mon problème est que quand je consulte la base Oracle je le trouve en yyyy-MM-dd. Je ne vois donc pas les heures, les minutes et les secondes.
    Comment faire pour toujours les avoir ?
    Merci

  2. #2
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut

    salut je viens de regler mon pb.il fallaiut le modifier dans mon sql developer en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter SESSION set NLS_DATE_FORMAT = 'DD-MM-YYYY HH24:MI:SS'

  3. #3
    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 pekre Voir le message
    Bonjour, je vous soumets ma préoccupation.
    j'ai une date que je voudrais enregistrer sous cette forme yyyy-MM-dd HH:mm:ss en format date.
    ...
    Une date c'est un type de données qui n'a pas de format. Ces sont 8 octets qui sont toujours stockés et qui doivent être interprétés suivant un algorithme pour retrouver la valeur de la date.
    Le format n'interviens que lorsque une date est convertie dans une chaine des caractères (comme pour l'affichage) ou lorsque une chaine des caractères est convertie dans une date.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 
    Connected as mni@parvatI
     
    SQL> 
    SQL> Select dump(sysdate)
      2   from dual
      3  /
    DUMP(SYSDATE)
    --------------------------------------------------------------------------------
    Typ=13 Len=8: 223,7,4,17,14,35,40,0
     
    SQL>

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par pekre Voir le message
    il fallaiut le modifier dans mon sql developer en faisant
    Dans SQL Developer, si vous ne voulez pas faire d'alter session à chaque fois, vous pouvez le configurer dans le menu Outils / Préférences / Base de données / NLS.

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Une date .... Ce sont 8 octets qui sont toujours stockés ...
    Dans mon souvenir, une date était stockée sur 7 octets, et la démonstration avec la fonction DUMP m'avait convaincu que je n'étais plus à jour sur ce sujet.

    Et puis j'ai eu à y revenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select vsize(sysdate) v1, vsize(hiredate) v2 from emp where rownum=1;
            V1         V2
    ---------- ----------
             7          7
    
    select dump(sysdate) d1, dump(hiredate) d2 from emp where rownum=1;
    D1                                       D2
    ---------------------------------------- ----------------------------------------
    Typ=13 Len=8: 223,7,8,6,4,15,15,0        Typ=12 Len=7: 119,180,12,17,1,1,1
    Et là on constate que DUMP fournit une longueur différente selon qu'il s'agit d'une date stockée en table ou non.

    John Spencer explique pourquoi ici https://community.oracle.com/message/2545976#2545976
    When you use sysdate or to_date and the like, Oracle gets the value through kernel call to the O/S so gets back a date in the c time_t struct format which is 8 bytes, and what the dump function shows. The vsize function returns the internal storage length of the argument. Somewhere in the code for vsize, the time_t struct version of the date is converted to Oracle's internal representation so it shows a length of 7.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  6. #6
    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
    Oui, merci pour cette correction.

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

Discussions similaires

  1. Calcul de durée entre deux dates en années, mois, jours, heures, minutes, secondes et reste
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 02/10/2015, 12h31
  2. Réponses: 14
    Dernier message: 11/12/2013, 14h59
  3. Réponses: 3
    Dernier message: 28/10/2008, 09h46
  4. Réponses: 1
    Dernier message: 30/04/2008, 11h00

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