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 :

récupéré tous les enregistrement entre aujourd'hui et aujourd'hui


Sujet :

Oracle

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut récupéré tous les enregistrement entre aujourd'hui et aujourd'hui
    Bonjour,

    j'ai une table qui contient une colone date, et je voudrais recupéré dans tous les cas les enregistrements entre une date et une date, seuelement quand je veut récupéré entre aujourd'hui et aujourd'hui (ou 2 jours identique) je ne recupére rien

    voila ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ... FROMma_table WHERE(PCR_DATE_CREATION >='03/05/2006')and(PCR_DATE_CREATION <='03/05/2006')ORDERBY PCR_DATE_CREATION
    
    il faut pour que je recupére les resultats du 03/05/2006, rajouté un jour a la date de fin (mais je voudrais ne pas avoir a le faire)

    quelqu'un a une idée ???


    merci

  2. #2
    Membre averti Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Points : 433
    Points
    433
    Par défaut
    Tu veux dire que ta requête ne ramène rien même si tu as des lignes avec :

    PCR_DATE_CREATION ='03/05/2006'

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 68
    Points : 102
    Points
    102
    Par défaut
    Y a pas une histoire de '03/05/2006 00:00:00' à tout hasard ?

    Si les champs comparés sont des dates, je pense qu'il considère tes critères ainsi.

    Va ptete falloir penser à un truc du genre :
    >= '03/05/2006 00:00:00'
    <= '03/05/2006 23:59:59'

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par Deirdrhil
    Y a pas une histoire de '03/05/2006 00:00:00' à tout hasard ?

    Si les champs comparés sont des dates, je pense qu'il considère tes critères ainsi.

    Va ptete falloir penser à un truc du genre :
    >= '03/05/2006 00:00:00'
    <= '03/05/2006 23:59:59'
    Je suis d'accord dans l'idée et de toute manière comparer des données hétérogènes (DATE / VARCHAR2) sans les transtyper (TO_CHAR / TO_DATE) reste "périlleux" à mon sens.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 45
    Points : 52
    Points
    52
    Par défaut
    Dans ta table, tu as quoi comme valeur ? Un champ de type Date, donc si tu veux récupérer les valeurs il faut reformater ta clause where...

    Attention si tu appliques une fonction sur une colonne et que par malheur tu as un index sur cette colonne, ça ne fonctionnera plus à moins que tu crées un funcion index...

    J'avais implémenté ça moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    AND TIMESTAMP BETWEEN TO_DATE(TO_CHAR(TRUNC(l_DUE_DATE-l_DELAY-1),'DD/MM/YYYY "23:59:59"'), 'DD/MM/YYYY HH24:MI:SS')
                               AND TO_DATE(TO_CHAR(TRUNC(l_DUE_DATE),'DD/MM/YYYY "23:59:59"'), 'DD/MM/YYYY HH24:MI:SS')

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Le type DATE stockant l'heure, quand tu fais des tests sur des dates, utilises un trunc.
    Sauf si tu est sur à 100% que les dates sont déjà tronquées dans ta table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
    SELECT... 
    FROM ma_table 
    WHERE TRUNC(PCR_DATE_CREATION)BETWEEN TO_DATE('03/05/2006','DD/MM/YYYY')
    AND TO_DATE('03/05/2006','DD/MM/YYYY'))
    ORDERBY PCR_DATE_CREATION
    
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  7. #7
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Si ta colonne n'est pas indexée, le mieux est de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where trunc (maColDate) = to_date ('22/05/2006', 'DD/MM/RRRR')
    Si ta colonne est indexée et que tu souhaites prendre l'index :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    where maColDate >= to_date ('22/05/2006', 'DD/MM/RRRR') 
       and maColDate < to_date ('22/05/2006', 'DD/MM/RRRR') + 1
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/06/2008, 14h57
  2. [MySQL] Afficher les enregistrement de la date d'aujourd'hui
    Par rane dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/10/2007, 19h48
  3. Réponses: 3
    Dernier message: 11/11/2006, 07h14
  4. faire somme de tous les enregistrements identiques
    Par Keraccess dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/07/2005, 11h03
  5. jointure renvois pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/08/2002, 12h51

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