Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/02/2011, 21h29   #1
Membre à l'essai
 
Inscription : décembre 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 101
Points : 22
Points : 22
Par défaut Minutes en heure minute

Bonjour,

Je veux transformer un nombre de minutes en HH:MM

2025 minutes donnerait 33 heures et 45 minute en format 33:45
6025 minutes donnerait 100 heures et 25 minutes en format 100:25
Merci beaucoup!
Marcel Chabot est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/02/2011, 23h09   #2
Membre à l'essai
 
Inscription : décembre 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 101
Points : 22
Points : 22
Si
Code :
SELECT Round(6029/60) || ':' || (mod(6029,1440) - (60*Round(mod(6029,1440)/60))) FROM dual;
Me donne comme résultat 100:29 ce qui es OK!

Problème si
Code :
SELECT Round(6035/60) || ':' || (mod(6035,1440) - (60*Round(mod(6035,1440)/60))) FROM dual;
Me donne 100:-25 au lieu de 100:35???
Marcel Chabot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 12h10   #3
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 437
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 437
Points : 4 173
Points : 4 173
Ce n'est pas la bonne méthode, vu que round fait un arrondi supérieur ou inférieur.
Code :
1
2
3
4
5
6
7
8
9
10
11
WITH t AS (SELECT 2025 AS MINUTE FROM dual
UNION ALL SELECT 6025 FROM dual
UNION ALL SELECT 6035 FROM dual
)
SELECT MINUTE, TRUNC(MINUTE / 60) heures, MINUTE - 60 * TRUNC(MINUTE/60) minutes
FROM t
 
Minute Heure Minutes
2025	33	45
6025	100	25
6035	100	35
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 15h25   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 459
Points : 10 459
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Un peu plus court pour les minutes :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
WITH t AS
(
SELECT 2025 AS nb FROM dual UNION ALL
SELECT 6025       FROM dual UNION ALL
SELECT 6035       FROM dual
)
SELECT nb, TRUNC(nb / 60) AS heures, mod(nb, 60) AS MINUTES
  FROM t;
 
NB                     HEURES                 MINUTES                
---------------------- ---------------------- ---------------------- 
2025                   33                     45                     
6025                   100                    25                     
6035                   100                    35
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/02/2011, 23h50   #5
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 437
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 437
Points : 4 173
Points : 4 173
En effet.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 09h26   #6
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 311
Points : 5 808
Points : 5 808
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
Connected TO Oracle DATABASE 10g Enterprise Edition Release 10.2.0.4.0 
Connected AS mni
 
SQL> 
SQL> WITH t AS
  2  (
  3  SELECT 2025 AS nb FROM dual UNION ALL
  4  SELECT 6025       FROM dual UNION ALL
  5  SELECT 6035       FROM dual
  6  ), t_tr AS
  7  (SELECT nb, numtodsinterval(nb,'MINUTE') dsint
  8    FROM t
  9  )
 10  SELECT nb,
 11         extract(day FROM dsint) * 24 +
 12         extract(hour FROM dsint) AS heures,
 13         extract(minute FROM dsint) AS Minute
 14    FROM t_tr;
 
        NB     HEURES     MINUTE
---------- ---------- ----------
      2025         33         45
      6025        100         25
      6035        100         35
 
SQL>
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h30.


 
 
 
 
Partenaires

Hébergement Web