Bonjour à tous,

voilà mon problème. J'aimerai convertir un champ qui stock de l'information (en decimal) en temps.

J'ai fait quelque chose d'horrible du genre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
select
CASE WHEN ABS(MOD(A.END_BAL,1))>0 THEN
  TO_CHAR(TRUNC(A.END_BAL)) || ':' || LPAD(TO_CHAR(ROUND(ABS(MOD(A.END_BAL,1))*60/100,2)*100),2,'0')
 ELSE
  TO_CHAR(TRUNC(A.END_BAL))
 END
from dual
Malheureusement, ça ne marche pas pour les nombre négatifs du genre -0.5 -> -0h30 (ou -0:30).

Voilà un jeu de test pour être sur que l'on se comprend bien

Decimal heure
0.5 0:30
140.75 140:45
-0.5 -0:30
-145.25 -145:15
13 13
-34 -34

Merci infiniment pour vos réponse.