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 :

Comportement bizarre avec mes dates


Sujet :

Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 99
    Par défaut Comportement bizarre avec mes dates
    Bonjour,
    j'ai un petit soucis avec une fonction sous oracle
    lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v_TERMINATIONDAY   DATE        := mkttimepac.GETGMTDATE(to_date('27/02/2012 00:00:00','DD/MM/YYYY HH24:MI:SS'),0);
    et ensuite un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dbms_output.put_line(v_TERMINATIONDAY);
    j'obtiens 26/02/12 au lieu de 27/02/2012
    Je comprend pas pourquoi ?

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Tu fais un put_line d'une date alors que put_line prend un varchar2 en paramètre.
    Donc c'est oracle fait une conversion implicite de ton paramètre de date en varchar2 (avec le NLS de ta session ou de la base).

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 99
    Par défaut
    http://www.oradev.com/dbms_output.jsp

    dbms_output.put and dbms_output.put_line
    The dbms_output.put_line or dbms_output.put procedures add the passed parameter to the buffer. These procedures are overloaded and can be called with a VARCHAR2, DATE or NUMBER parameter. These parameters will be implicitely converted to VARCHAR2 before they are put on the buffer. The put_line procedure automatically adds and end-of-line to the buffer. If the line is bigger than the buffer limit, you will receive an error message.

    syntax
    dbms_output.put(parameter); (with parameter a VARCHAR2, DATE or NUMBER value) dbms_output.put_line(parameter); (with parameter a VARCHAR2, DATE or NUMBER value)

  4. #4
    Membre chevronné
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Par défaut
    C'est exactement ce que McM vient de dire non ?

    These parameters will be implicitely converted to VARCHAR2 before they are put on the buffer.
    oracle fait une conversion implicite de ton paramètre de date en varchar2 (avec le NLS de ta session ou de la base).

  5. #5
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Par défaut
    Bonjour,

    Moi je me demanderai plutôt ce que fait la fonction packagée GETGMTDATE dans ton package mkttimepac.

    A priori, elle renvoie le jour au format GMT.

    Actuellement, nous avons 2 heures en plus en France par rapport à l'heure GMT. Donc pour cette nuit, le 19/07/2012 à 0h0m0s en heure locale, il était en fait 22 heures et on était le 18/07/2012 en heure GMT.

    Pour ton 27 février, on était encore en heure d'hiver, avec donc une heure d'avance par rapport au GMT. On était donc le 26 février à 23 heures en GMT, d'où ton résultat non ?

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

Discussions similaires

  1. comportements bizarres avec mes feuilles de style
    Par jytest dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 25/09/2013, 00h26
  2. Comportement bizarre avec le SQL a la carte
    Par fatatov dans le forum Deski
    Réponses: 2
    Dernier message: 11/07/2008, 17h47
  3. [Cookies] Problème bizarre avec mes sessions
    Par shelko dans le forum Langage
    Réponses: 3
    Dernier message: 27/08/2007, 16h13
  4. [TRANSAQ SQL] INSERT comportement bizarre avec les REAL
    Par argyronet dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/12/2005, 12h47
  5. Comportement bizarre de mes FPS
    Par Ekinoks dans le forum OpenGL
    Réponses: 7
    Dernier message: 22/08/2005, 16h14

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