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 :

Sysdate sans les heures


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Sysdate sans les heures
    Bonjour,
    je souhaite faire une requête sql en sélectionnant tous mes enregistrements dont la date est comprise entre la date d'aujourd'hui et la fin du mois.
    Mon problème est que lorsque j'utilise la fonction sysdate, cela me donne un format de date jj/mm/aaaa HH:mm:ss, et je voudrais seulement jj/mm/aaaa pour que mes sélections fonctionnent correctement.
    Quelqu'un pourrait-il m'aider ?
    Merci

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    tu peux utiliser TRUNC mais le mieux c'est encore de tenir compte de ces heures.

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    colonne BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE + 1)
    Ainsi tu conserves l'usage des indexes

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Merci
    Génial ! ça fonctionne !!
    Je dois ne pas tenir compte des heures, sinon selon l'heure à laquelle les utilisateurs le rafraichissent ils n'ont pas la journée en cours...
    En tout cas, la fonction trunc me va très bien.
    A++

  4. #4
    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
    Houla, je ne suis pas d'accord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TRUNC(colonne) = TRUNC(SYSDATE)
    DIFFERENT DE
    colonne BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE + 1)
    Pb si colonne = trunc(sysdate) + 1
    Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    colonne >= TRUNC(SYSDATE) 
    AND colonne < TRUNC(SYSDATE + 1)

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    en effet, le BETWEEN prend les bornes en compte, au temps pour moi

  6. #6
    Membre actif Avatar de hugobob
    Profil pro
    FOI
    Inscrit en
    Septembre 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : Gabon

    Informations professionnelles :
    Activité : FOI

    Informations forums :
    Inscription : Septembre 2005
    Messages : 169
    Points : 203
    Points
    203
    Par défaut
    peut-on aussi utiliser to_char en formatant les dates ?

  7. #7
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    non, on perdrait l'usage des indexes (sauf index basé sur des fonctions)

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Ok, j'ai rectifié !
    Merci à tous...

  9. #9
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut encore (un peu) mieux !
    Citation Envoyé par McM Voir le message
    Houla, je ne suis pas d'accord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TRUNC(colonne) = TRUNC(SYSDATE)
    DIFFERENT DE
    colonne BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE + 1)
    Pb si colonne = trunc(sysdate) + 1
    Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    colonne >= TRUNC(SYSDATE) 
    AND colonne < TRUNC(SYSDATE + 1)
    Encore (un peu) mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trunc(colonne_date) = trunc(sysdate)

  10. #10
    Membre expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 612
    Points : 3 066
    Points
    3 066
    Par défaut
    Citation Envoyé par renelou Voir le message
    Encore (un peu) mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trunc(colonne_date) = trunc(sysdate)
    En quoi est-ce mieux ? Au contraire : cette technique empêche d'utiliser l'éventuel index sur colonne_date.

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

Discussions similaires

  1. [VxiR2] Liste de dates en invite sans les heures
    Par ouistitis dans le forum Webi
    Réponses: 3
    Dernier message: 10/03/2010, 19h06
  2. La date sans les heures
    Par Avatar69 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/02/2010, 09h37
  3. Afficher la date sans les heures
    Par danduril dans le forum BIRT
    Réponses: 2
    Dernier message: 08/07/2008, 16h00
  4. Group by date sans les heures: minutes: secondes
    Par KING_OF_GRACELAND dans le forum SQL
    Réponses: 13
    Dernier message: 13/03/2008, 10h37
  5. [forms 6i][8i] affecter SYSDATE AVEC les heures
    Par Magnus dans le forum Oracle
    Réponses: 5
    Dernier message: 14/02/2006, 14h27

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