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 :

additioner 2 heures


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 173
    Points : 485
    Points
    485
    Par défaut additioner 2 heures
    Bonjour à tous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TABLE
     
     
    CHAMP.DATE

    Ce que je veux faire c'est d'additioner les heures et minutes pour une date donnée.

    exemple:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    19/10/10 05:25
    19/10/10 02:25
    et bien je voudrais ici addtitioner 5:25 et 2:25 vu que la date est 19/10/10


    j'ai tenté cette rêquete ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(to_char(CHAMP.DATE,'HH24:MI')) FROM TABLE where trunc(CHAMP.DATE) = '19/10/10'

    Donc ceci fonctionne que pour les heures si j'enlève MI.
    Mais je dois absolument additioner les heures et minutes.

    Merci,
    Cordialement.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    On ne peut pas additionner deux dates, vous l'avez compris.
    On peut par contre tout à fait additionner des durées.

    Pour votre problème, on calcule la durée entre chaque date et leur jour, on additionne ces deux durées et on les rajoute au jour de départ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with sr as
    (
    select to_date('19/10/10 05:25', 'dd/mm/rr hh24:mi') as dt1,
           to_date('19/10/10 02:25', 'dd/mm/rr hh24:mi') as dt2
      from dual
    )
    select (dt1 - trunc(dt1)) + (dt2 - trunc(dt2)) + trunc(dt1) as addition
      from sr;
     
    ADDITION
    19/10/2010 07:50:00

  3. #3
    Membre averti Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Points : 442
    Points
    442
    Par défaut
    Bonjour,

    Il faut commencer par extraire de chaque enregistrement le nombre d'heure au format numérique. Ensuite on somme ces heures. L'unité de mesure étant le jour, on joue ensuite sur l'affichage pour extraire les heures et le minutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    With ma_table as (
      select to_date ('19102010 05:25', 'DDMMYYYY HH24:MI') ma_date from dual union all
      select to_date ('19102010 02:25', 'DDMMYYYY HH24:MI') ma_date from dual
      )
    select trunc(ma_date) jour,
           sum (ma_date-trunc(ma_date)) somme_heures,
           to_char (trunc (sum (ma_date-trunc(ma_date))*24),'FM00') || ':' || mod( (sum (ma_date-trunc(ma_date))*24*60), 60) heures
    from ma_table
    where trunc(ma_date) = to_date ('19102010', 'DDMMYYYY')
    group by trunc(ma_date);
     
    JOUR     SOMME_HEURES HEURES
    -------- ------------ ------
    19/10/10   ,326388889 07:50
    PS :
    trunc(CHAMP.DATE) = '19/10/10'
    Ne jamais faire de conversion de chaine de caractères en date sans préciser le format. Le fonctionnement sera aléatoire selon le paramétrage du client qui exécute la requête.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 173
    Points : 485
    Points
    485
    Par défaut
    J'ai essayé ton code et il me renvoi juste la date.
    Désolé j'ai pas tous compris.

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 173
    Points : 485
    Points
    485
    Par défaut
    Désolé de reposter mais j'ai eu un petit soucis j'ai oublié de préciser que enfaite il peut y avoir un nombre de date stocker infini donc je dois faire une boucle dans mon programme mais dans ma requete comment je peux gérer sa.

    Merci

  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
    la requête de Xdescamp devrait être correcte.
    Avec plusieurs dates ça passe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    WITH t AS (
                        SELECT TO_DATE('18/10/2010 05:20', 'DD/MM/RRRR HH24:MI') AS d FROM dual
    UNION ALL SELECT TO_DATE('19/10/2010 01:15', 'DD/MM/RRRR HH24:MI') AS d FROM dual
    UNION ALL SELECT TO_DATE('19/10/2010 03:10', 'DD/MM/RRRR HH24:MI') AS d FROM dual
    UNION ALL SELECT TO_DATE('19/10/2010 14:05', 'DD/MM/RRRR HH24:MI') AS d FROM dual
    UNION ALL SELECT TO_DATE('19/10/2010 15:35', 'DD/MM/RRRR HH24:MI') AS d FROM dual
    )
    SELECT TRUNC(d) jour, LPAD(TRUNC(24 * SUM(d - TRUNC(d))),2,'0') ||':'|| TO_CHAR(TRUNC(d) + SUM(d - TRUNC(d)), 'MI') heures_minutes
    FROM t
    GROUP BY TRUNC(d)
     
    JOUR    HEURES_MINUTES
    18/10/2010    05:20
    19/10/2010    34:05
    Décris mieux ton problème et poster ton code (tu parles de boucle et de requête)

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

Discussions similaires

  1. [AC-2003] Additioner des heures de type Texte
    Par tarnx dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/01/2010, 08h44
  2. [AC-2003] Additioner des heures de type Texte
    Par tarnx dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 20/01/2010, 15h59
  3. Additioner deux heures HH:MM
    Par alex75 dans le forum Langage
    Réponses: 6
    Dernier message: 05/07/2006, 15h05
  4. [CR ?] Somme d'heure sous Crystal ?
    Par Peter PARKER dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 17/04/2003, 16h24
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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