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 :

somme de variables de type date


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut somme de variables de type date
    dans ma table j'ai une variable:

    total_wor VarChar2 (30)

    dans la quelle est stocké une valeur de la forme d'un temps : 'HH24:MI:SS'

    je veut faire la somme de cette colonne et avoir un résultat sous la meme forme : 'HH24:MI:SS'

    esque quelqu'un peut m'aider
    merci

  2. #2
    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
    Convertis en secondes, sommes, et reconvertis en HH24:MI:SS
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    une somme de date ???

    Que doit faire 10/01 + 18/02 ?

  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
    En fait son titre n'est pas explicite : Il veut faire une somme de temps qui sont stockés en varchar2 sous la forme HH24:MI:SS (Cf post d'il y a 1 semaine).
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    non c'est pas le meme car maintenant je veut faire la somme d'une colonne.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    "Convertis en secondes, sommes, et reconvertis en HH24:MI:SS"

    ok mais comment avoir la somme déja?

  7. #7
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par tounsi
    "Convertis en secondes, sommes, et reconvertis en HH24:MI:SS"

    ok mais comment avoir la somme déja?
    On tourne en rond là !

    Pour convertir en secondes, c'est facile:

    1H = 3600 "
    1' = 60 "
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    je sait bien que c'est sum mais oracle ne l'accepte pas

    ORA-00975: l'opération DATE + DATE n'est pas autorisée

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    merci donc de répondre à ma question pour comprendre le but de la manoeuvre

  10. #10
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Le nombre de secondes écoulées depuis ce matin 00:00

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TO_CHAR(SYSDATE,'sssss') FROM dual
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    c'est une somme de date(heures,minute et seconde) d'un temps quoi stocker dans un varchar2

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    quand je fait une soustratction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT  TO_CHAR( DATE '2001-01-01' +(to_date('00:00:59', 'HH24:MI:ss')-to_date('00:00:02', 'HH24:MI:ss')),'HH24:MI:SS' ) FROM dual
    ca marche

    mais pour une addition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT  TO_CHAR( DATE '2001-01-01' +(to_date('00:00:59', 'HH24:MI:ss')+to_date('00:00:02', 'HH2
    4:MI:ss')),'HH24:MI:SS' ) FROM dual
    il me dit

    ERREUR à la ligne 1 :
    ORA-00975: l'opération DATE + DATE n'est pas autorisée
    beuuuuuuuuuuuuu?? pourquoi?

  13. #13
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(TO_CHAR(la_colonne,'sssss')) FROM LA_TABLE
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  14. #14
    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
    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.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    this one works fine

    SUM(TO_CHAR(TO_DATE(TOTAL_WOR,'HH24:MI:SS'),'SSSSS'))

    but when i try to convert the result in 'HH24:MI:ss'
    there is an error

    SELECT SUM(TO_CHAR(to_date(total_wor, 'HH24:MI:ss'),'HH24:MI:ss')) FROM works
    *
    ERREUR à la ligne 1 :
    ORA-01722: Nombre non valide

    why? and how can i convert it in 'HH24:MI:ss'

  16. #16
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Cherchez un peu !

    3600 secondes = 1 heures
    60 secondes = 1 minute
    3600 * 24 = 1 jour
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  17. #17
    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
    Passe par les chaines ce sera plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT 
    SUBSTR(TOTAL_WOR, 1, INSTR(TOTAL_WOR, ':') -1 ) heures,
    SUBSTR(TOTAL_WOR, INSTR(TOTAL_WOR, ':') + 1, INSTR(TOTAL_WOR, ':',-1) -  INSTR(TOTAL_WOR, ':') - 1) minutes,
    SUBSTR(TOTAL_WOR, INSTR(TOTAL_WOR, ':',-1) + 1) secondes
    FROM dual
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    je sait que 3600 = 1h

    mais pourquoi on ne peut pas convertir en 'HH24:MI:ss' si on le peut en ssss
    SELECT SUM(TO_CHAR(to_date(total_wor, 'HH24:MI:ss'),'HH24:MI:ss')) FROM works


    il n ya pas de format pour ca?

  19. #19
    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
    Citation Envoyé par tounsi
    mais pourquoi on ne peut pas convertir en 'HH24:MI:ss' si on le peut en ssss
    SELECT SUM(TO_CHAR(to_date(total_wor, 'HH24:MI:ss'),'HH24:MI:ss')) FROM works
    il n ya pas de format pour ca?
    M'enfin, regardes ton code, tu fais une SOMME d'une chaine de caractères !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT SUM(TO_NUMBER(TO_CHAR(TO_DATE('12:15:20', 'HH24:MI:ss'), 'SSSSS')))
    FROM dual
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    merci pour tous de votre
    j'ai trouver le résulat que je voulais

    voici comment faire

    SELECT
    TO_CHAR(TRUNC(SUM(TO_CHAR(to_date(total_wor, 'HH24:MI:ss'),'sssss'))/3600)) || ':'
    || TO_CHAR(TRUNC(MOD(SUM(TO_CHAR(to_date(total_wor, 'HH24:MI:ss'),'sssss')), 3600)/60)) || ':'
    || TO_CHAR(MOD(SUM(TO_CHAR(to_date(total_wor, 'HH24:MI:ss'),'sssss')), 60))
    FROM works;


    et j'ai un résulat : 0:2:51 comme je veut

    merci a tous de votre aide

Discussions similaires

  1. Problème dans le stockage d'une variable de type Date
    Par Pentos60 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/03/2011, 20h39
  2. Réponses: 4
    Dernier message: 04/09/2009, 12h07
  3. Réponses: 2
    Dernier message: 22/04/2009, 10h47
  4. [AC-2007] Variable de type date
    Par Chris 81 dans le forum VBA Access
    Réponses: 15
    Dernier message: 19/04/2009, 10h03
  5. comment declarer une variable de type date ?
    Par MAJIK_ENIS dans le forum JDBC
    Réponses: 1
    Dernier message: 26/05/2006, 00h02

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