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 :

Requête SQL avec timestamp


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 77
    Points : 54
    Points
    54
    Par défaut Requête SQL avec timestamp
    Bonjour,

    J'ai une table avec une zone date qui est de type timestamp et dans Oracle (SQL DEVELOPPER) cela m'affiche par exemple : 2012/09/06 07:58:58

    Je veux voir les enreg pour un jour précis entre 2 heures mais je n'y arrive pas.

    J'arrive à faire celle ci pour voir les enreg du jour :

    select * from MATABLE where TO_CHAR(DATE,'YYYY-MM-DD HH24:MI:SS') like '%2012-09-06%'

    J'aimerais ensuite l'améliorer avec un between entre 2 heures mais je ne sais pas comment faire, une requête du genre :

    select * from MATABLE where TO_CHAR(DATE,'YYYY-MM-DD HH24:MI:SS') between '2012/09/06 07:00:00' and '2012/09/06 08:00:00'

    Comment faire ?

    Aussi j'aimerais faire pareil avec par exmple les enreg > au 06/09/12 à 07h00:00

    select * from MATABLE where TO_CHAR(DATE,'YYYY-MM-DD HH24:MI:SS') > '2012/09/06 07:00:00'

    Comment faire ?

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Select col
      From maTable
     Where colDate between To_Date(<chaine_caractères_date1>,<Format1>) And
                                      To_Date(<chaine_caractères_date2>,<Format2>)

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

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Points : 542
    Points
    542
    Par défaut
    Pourquoi cette conversion en chaines de caractères ?

    J'arrive à faire celle ci pour voir les enreg du jour :

    select * from MATABLE where TO_CHAR(DATE,'YYYY-MM-DD HH24:MI:SS') like '%2012-09-06%'
    Ou mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from MATABLE where TRUNC(DATE) =  TO_DATE('2012/09/06','YYYY/MM/DD')
    J'aimerais ensuite l'améliorer avec un between entre 2 heures mais je ne sais pas comment faire, une requête du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select * from MATABLE
    where DATE between TO_DATE('2012/09/06 07:00:00','YYYY/MM/DD HH24:MI:SS') and TO_DATE('2012/09/06 08:00:00','YYYY/MM/DD HH24:MI:SS')
    Dans tous les cas je pense qu'il ne faut pas passer par des chaines de caractères...

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Merci vous deux c'est exactement ce que je voulais !!

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par Bibeleuh Voir le message
    Ou mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from MATABLE where TRUNC(DATE) =  TO_DATE('2012/09/06','YYYY/MM/DD')
    Attention, ce n'est pas vraiment mieux que la conversion en chaîne de caractère. Il y a toujours une opération à effectuer sur toute la colonne (même si elle est probablement plus légère que le to_char), et ça annihile autant l'éventuelle utilisation d'un index sur la colonne.

    Les requêtes suivantes sont équivalentes en résultat et n'ont pas ce problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select *
      from MATABLE
     where MaDate >= TO_DATE('2012/09/06','YYYY/MM/DD')
       and MaDate <  TO_DATE('2012/09/07','YYYY/MM/DD');
     
    select *
      from MATABLE
     where MaDate >= DATE '2012-09-06'
       and MaDate <  DATE '2012-09-07';
     
    select *
      from MATABLE
     where MaDate BETWEEN TO_DATE('2012/09/06 00:00:00','YYYY/MM/DD HH24:MI:SS')
                      AND TO_DATE('2012/09/06 23:59:59','YYYY/MM/DD HH24:MI:SS');

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 21
    Points
    21
    Par défaut Waldar
    je valide ta requete

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

Discussions similaires

  1. requête sql avec clause INNER JOIN
    Par new_wave dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/08/2005, 15h47
  2. Requête SQL avec une réponse unique
    Par Glutinus dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/07/2005, 16h35
  3. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15
  4. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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