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 :

[SQL] + comparaison de 2 dates


Sujet :

SQL Oracle

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Par défaut [SQL] + comparaison de 2 dates
    Bonjour,

    J'ai un peu du mal.
    J'aimerai comparer 2 dates dans ma requête:
    ma date = "30/06/2008 06:00:00"
    avec la SYSDATE

    Mais savoir si elle sont égales sans comparer avec l'heure.
    Comment dois-je faire? Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Par défaut
    Re,
    Je crois avoir trouve la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND TO_DATE(myDate, 'dd/mm/yyyy') = TO_DATE(SYSDATE, 'dd/mm/yyyy')

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Ou bien (je préfère personnellement car on conserve des dates) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND TRUNC(myDate) = TRUNC(SYSDATE)

  4. #4
    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
    TO_DATE(SYSDATE

    Jamais de to_date sur une date. Un to_date transforme une chaine de caractère en date, c'est sa seule fonction.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Citation Envoyé par McM Voir le message

    Jamais de to_date sur une date. Un to_date transforme une chaine de caractère en date, c'est sa seule fonction.
    Bien vu, cela m'avait échappé. J'étais persuadé d'avoir vu un TO_CHAR, d'où ma remarque "car on conserve des dates" :p

    Effectivement le code auquel je pensais est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND TO_CHAR(myDate, 'dd/mm/yyyy') = TO_CHAR(SYSDATE, 'dd/mm/yyyy')
    Mais encore une fois je préfère TRUNC .

    Toxycyty, ton code original est à proscrire car voici ce qui se passe :

    - conversion des champs DATE en chaine avec le format de date de la session (fonction des paramètres NLS, non maitrisé)

    - conversion des chaines en date avec le format voulu : 'dd/mm/yyyy', mais rien ne garantit que la conversion implicite précédente a utilisé ce format !

    HTH

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Par défaut
    Salut,

    C'est note, merci pour l'info.
    A+

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2006
    Messages : 142
    Par défaut
    Attention !!! On perd l'usage de tout index basé sur la colonne mydate dès que l'on fait une opération dessus dans le WHERE. C'est le cas avec votre formule.

    Pour éviter ça il faut plutôt faire l'encadrement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AND myDate >= TRUNC(SYSDATE)
    AND myDate < TRUNC(SYSDATE) +1
    Cdlt.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Citation Envoyé par pat29 Voir le message
    Attention !!! On perd l'usage de tout index basé sur la colonne mydate dès que l'on fait une opération dessus dans le WHERE. C'est le cas avec votre formule.

    Pour éviter ça il faut plutôt faire l'encadrement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AND myDate >= TRUNC(SYSDATE)
    AND myDate < TRUNC(SYSDATE) +1
    Cdlt.
    Effectivement, ce n'est pas toujours utile mais c'est un bon réflexe à prendre, tu as raison.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/07/2012, 14h43
  2. [AC-2007] requête SQL comparaison de dates avec IIF
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 24/09/2009, 15h30
  3. [Linq to Sql] Comparaison de dates
    Par Lennox dans le forum Accès aux données
    Réponses: 10
    Dernier message: 05/09/2008, 22h15
  4. [SQL] Comparaison d'une date au format FR avec la date du jour au format US
    Par delcada dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/10/2007, 15h22
  5. [MySQL] comparaison de deux dates dans un ordre sql
    Par opeo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/03/2007, 14h34

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