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

SQL Oracle Discussion :

Champs data = sysdate


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut Champs data = sysdate
    Bonjour à tous,

    J'ai un petit souci avec une requête. J'ai un champ date et dans ma requête je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from EM_DATA where FSD_DATE <= SYSDATE-22;
    Cette requête avec le inférieur ou égal me retourne des résultats et y a des résultat au 14/12/11 jusqu'au 01/09/11

    La même requête en enlevant le inférieur me ramène rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from EM_DATA where FSD_DATE = SYSDATE-22;
    Alors que normalement je devrais avoir les résultats du 14/12/11.

    Quelqu'un a une explication/solution?

    Merci d'avance!

  2. #2
    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
    Faites le paramétrage suivant, vous allez comprendre pourquoi ce n'est pas égal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS';
    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

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    Bonjour et merci pour la réponse mais je n'ai toujours pas compris?

    Quel est le lien entre le ALTER SESSION et mon problème?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS';
    Je précise que dans ma table le champ date est au format 'DD/MM/YY HH24:MI:SS'

    Si je fais <= (sysdate-22) j'ai des résultats, pourquoi avec = ca ne fonctionne pas?

  4. #4
    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
    Après ce paramétrage, si vous refaites vos requêtes (c'était sous entendu !), et que par ailleurs vous faites
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SYSDATE - 22 FROM DUAL;
    vous allez constater à coup sûr que la date en question ne figure pas dans votre table, car il y a une différence au niveau heures/minutes/secondes.
    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

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    J'ai trouvé la solution je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TRUNC(FSD_DATE, 'DDD') = TRUNC((SYSDATE-22), 'DDD')


    Merci encore pour votre aide!

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

Discussions similaires

  1. [XL-2010] Modifier le champs data via valeur listé
    Par Coffe_taff dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/03/2013, 14h17
  2. Ajout d'un champs calculé dans un "select new" de linq Data
    Par Tardiff Jean-François dans le forum Linq
    Réponses: 1
    Dernier message: 18/04/2008, 11h47
  3. Réponses: 2
    Dernier message: 19/10/2007, 15h45
  4. LOAD DATA et Champ vide
    Par toniox dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 25/07/2006, 13h09
  5. [TTreeNode] Suppression d'un object du champ data
    Par jmdeffet dans le forum Langage
    Réponses: 2
    Dernier message: 02/06/2005, 12h41

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