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 :

Comparaison de date/heure


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 15
    Par défaut Comparaison de date/heure
    Bonjour,

    Je sollicite votre aide pour la conception d'une requête SQL sous Oracle. Je m'explique, j'ai une table avec plusieurs champs dont une date_debut, une heure_debut, une date_fin et une heure_fin. Les dates sont de format (JJ/MM/AAAA) et les heures de format (HH:MM). Maintenant j'aimerais savoir comment récupérer le délai entre la date/heure début et la date/heure fin. J'ai donc essayé de tout convertir en minutes en faisant (date_fin - date_debut)*1440 + (heure_fin - heure_debut) mais ça ne fonctionne pas. En effet la différence de date fonctionne mais pas celle des heures. Où alors il faudrait que je fasse la différence des heures * 60 + la différence des minutes mais je ne sais pas comment faire pour séparer les heures et les minutes.

    Quelqu'un pourrait-il m'aider ? Si vous avez une autre solution je suis preneur aussi.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Quel est le TYPE des données ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 15
    Par défaut
    Les dates dont de type DATE et les heures sont de type VARCHAR2.

  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
    transforme les dates + heures en vrai dates (avec heure intégrée)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_date( to_char(date_deb, 'DD/MM/RRRR') ||' '|| heure_deb, 'DD/MM/RRRR HH24:MI')
    Ensuite tu fais une différence de dates (ça te donnera un nb de jours) donc tu multiplie par 24 pour avoir le nb d'heure, etc..

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    avec un SUBSTR

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE lsc_t AS
    SELECT DATE '2000-01-01' d1, '23:59' h1, DATE '2000-01-02' d2, '00:00' h2
    FROM DUAL;
     
    SELECT d1, h1, d2, h2,
             (d2 - d1) * 1440
           + (SUBSTR (h2, 1, 2) - SUBSTR (h1, 1, 2)) * 60
           + SUBSTR (h2, 4)
           - SUBSTR (h1, 4) as "DIFFERENCE"
      FROM lsc_t;
    D1        H1    D2        H2    DIFFERENCE
    --------- ----- --------- ----- ----------
    01-JAN-00 23:59 02-JAN-00 00:00          1

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 15
    Par défaut
    Merci beaucoup, ça fonctionne à présent. Pour info j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (date_fin - date_debut)*1440 + (to_number(substr(heure_fin,1,2)) - to_number(substr(heure_debut,1,2)))*60 + (to_number(substr(heure_fin,4,2)) - to_number(substr(heure_debut,4,2)))
    Ce qui me donne le délai en minutes

    Par contre je vois que le "to_number" n'est pas nécessaire ?

    Autre petite question, j'aimerais rajouter dans ma requête une clause dans le "where" par rapport à ce délai (ex: délai inférieur à ...). Comment faire sans avoir à retaper toute la formule ?

    Merci.

Discussions similaires

  1. Comparaison de date / soustraire 1 heure
    Par fabien14 dans le forum Langage
    Réponses: 3
    Dernier message: 14/05/2010, 16h57
  2. Comparaison date heure
    Par aurelie83 dans le forum SQL
    Réponses: 3
    Dernier message: 16/05/2008, 19h14
  3. Comparaison des dates et heures
    Par IcedLand dans le forum Sql Developer
    Réponses: 1
    Dernier message: 21/09/2007, 10h04
  4. [SQL SERVER / VBDOTNET] comparaison de date/heure
    Par t1marlartiste dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/06/2007, 09h51
  5. [DEBUTANT]Comparaison sur date et heure
    Par tripper.dim dans le forum Oracle
    Réponses: 15
    Dernier message: 15/11/2005, 18h25

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