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 :

[Oracle9i] comment stocker une durée (04:12 par exple) ?


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 96
    Points : 65
    Points
    65
    Par défaut [Oracle9i] comment stocker une durée (04:12 par exple) ?
    Bonjour,

    je souhaiterais stocker dans une table oracle des durées en heure / minute. Par exemple :
    05:03 pour 5 h 3 minutes,
    120:45 pour 120 h 45 minutes.
    Est-ce possible ?

    Y a-t'il un type de donnée approprié à ce genre de besoin ?
    (j'ai cherché du côté de TIMESTAMP et INTERVAL...ça me semble un peu compliqué, faudrait stocker la date/heure/min de début et la date/heure/min de fin puis faire une différence pour avoir la durée ... :s).

    Merci pour vos lumières.

  2. #2
    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
    Auncun champs de type DATE ne pourrait vous donner une valeur > 24 pour l'heure par example. Si vous voulez stocker des valeurs de type 120:40, il vous faudra donc stocker ce genre de valeurs dans un Varchar2.
    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

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 96
    Points : 65
    Points
    65
    Par défaut
    Aïe...stocké dans un VARCHAR2, ça ne va pas simplifier les calculs pour additionner / soustraire... je pensais à NUMBER(3,2) dans ce cas...

  4. #4
    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
    de toute façon, ajouter des heures, des minutes et des secondes n'a jamais été simple.
    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

  5. #5
    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
    Met ta colonne en nombre (secondes).
    Pour les calculs pas de problème.
    Pour les affichages, faudra juste faire une fonction de formatage (très simple)
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  6. #6
    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 McM
    Met ta colonne en nombre (secondes).
    Pour les calculs pas de problème.
    Pour les affichages, faudra juste faire une fonction de formatage (très simple)
    Pas idiot ça !
    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

  7. #7
    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
    fonction de formatage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT 28077, 
    trim(TO_CHAR(TRUNC(TRUNC(28077/60)/60),'999900')
    || ':' || MOD(TRUNC(28077/60),60) 
    || ':' ||  MOD(28077,60)) AS hms
    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

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 96
    Points : 65
    Points
    65
    Par défaut
    Bonne idée de stocker directement en secondes.
    Je pense que je vais pouvoir m'en sortir avec cette solution.

    Pour info, on peut éventuellement s'en sortir avec ce qui est décrit sur ce site (chapitre INTERVAL) :
    http://www.psoug.org/reference/timestamp.html
    A condition qu'on dispose d'une date de début et de fin pour pouvoir calculer l'intervalle (par un UPDATE). De plus, on ne peut pas utiliser la fonction d'aggrégation sum() sur les champs de type interval, seulement des +.

    Merci pour votre aide.

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

Discussions similaires

  1. Comment stocker une image dans une base de données sqlce ?
    Par ozeon dans le forum Développement
    Réponses: 3
    Dernier message: 11/07/2016, 20h13
  2. [SQL] Comment automatiser une requête SQL alimentée par un formulaire HTML?
    Par tse_tilky_moje_imja dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/06/2006, 23h46
  3. Réponses: 4
    Dernier message: 05/06/2006, 11h34
  4. [.config] Comment stocker une value : un texte multiligne ?
    Par Manralf dans le forum Framework .NET
    Réponses: 2
    Dernier message: 27/02/2006, 09h17
  5. Comment stocker une référence vers un TTreeNode ds un DFM ?
    Par phplive dans le forum Composants VCL
    Réponses: 1
    Dernier message: 19/07/2005, 12h33

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