Bonjour,
Je voudrais savoir comment convertir des heure minute seconde en décimal afin de faire un calcul
Bonjour,
Je voudrais savoir comment convertir des heure minute seconde en décimal afin de faire un calcul
hello
Est ce que tu peux nous en dire plus sur ton calcul ?
C'est juste un calcul basic du style:
heure minute second(01:25:00) * 2 / 100
Mais j'ai besoin de convertir heure minute seconde en décimal avant
est ce que tu peux nous donner un exemple ?
et nous expliquer l'utilité de ce calcul ? ce qui pourrait nous permettre de t'aider a trouve la meilleur solution.
Le calcul va me permettre de connaitre un montant total si le mois de début est égale au mois de fin
Donc j'ai un champs nbheuremoisrayon(qui retourne un resultat en heure,minute,seconde) x prixdeagence( ce champs retourne un nombre exemple (22)) x pourcentage( ce champs retourne un nombre) / 100
Voici mon calcul (mais avant tout je souhaite transformer le résultat de nbheuremoisrayon en nombre décimal afin de faire mon calcul)
Si j'ai bien compris le besoin, il vous suffit de faire la formule classique : (heures * 3600) + (minutes * 60) + secondes = nombre de secondes
Non puisque ma variable nbheuremoisrayon retourne un résultat comme ceci : 01:12:00
Exemple (ma colonne est un timestamp, d'où le substring) :
Donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 select TS_evt , substr(char(TS_evt), 12, 02) , substr(char(TS_evt), 15, 02) , substr(char(TS_evt), 18, 02) , cast(substr(char(TS_evt), 12, 02) AS decimal(7,0)) * 3600 + cast(substr(char(TS_evt), 15, 02) AS decimal(7,0)) * 60 + cast(substr(char(TS_evt), 18, 02) AS decimal(7,0)) from Ma_Vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 2017-06-14-14.41.00.079306 14 41 00 52860 2017-06-14-15.41.06.097249 15 41 06 56466 2017-06-14-15.43.26.098156 15 43 26 56606 2017-06-14-16.00.30.098746 16 00 30 57630 2017-06-14-18.12.41.099171 18 12 41 65561 2017-06-14-18.25.14.103170 18 25 14 66314 2017-06-14-18.22.20.103651 18 22 20 66140
Ton code ma l'air compliqué, je ne le comprend pas trop
A quoi sert le : 18, 02 ou 12, 02 etc...
les 3 premières lignes ne sont la que pour afficher séparément le contenu de l'heure, des minutes et des secondes (c'était pour contrôler, pas besoin de conserver ça dans la requête finale)
18, 02 sont les arguments de la fonction SUBSTR: ce sont la position de début et la longueur de la chaine de caractères
les 3 suivantes convertissent l'heure décimal et additionnent le résultat pour avoir un nombre de secondes. A diviser par 3600 si on préfère un total en heures.
On peut faire plus court avec la fonction TIME_TO_SEC, là c'est pour montrer la démarche
Ah d'accord maintenant je comprend mieux
Donne moi la syntaxe avec time to sec, j'utilise cette fonction de temps en temps mais je pose la question suivante afin de savoir,
quand je l'ai convertie en seconde,
est-ce qu'il est nécessaire de le convertir en nombre décimal afin de faire mes calculs ?
Salut kidmig.
@+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 -------------- select '01:12:00', time_to_sec('01:12:00') as seconde, cast(time_to_sec('01:12:00') * 2 / 100 as decimal(10,2)) as calcul from dual -------------- +----------+---------+--------+ | 01:12:00 | seconde | calcul | +----------+---------+--------+ | 01:12:00 | 4320 | 86.40 | +----------+---------+--------+ Appuyez sur une touche pour continuer...
Partager