[SQL oracle (sqlplus)] Comparatif dates
Fermé
Bonjour,
Je voudrais obtenir le temps d'execution d'un traitement en sql à partir d'une date de début et d'une date de fin sous la forme : "2004-10-05 18:10:22".
Si je fais une requète simple du genre : "select date_fin_traitement - date_debut_traitement from traitement", il me done comme resultat : 0.45668552 ce qui equivaut à 0,45 jour.
Or je charche à avoir ce resultat sous la forme heure:minute:seconde.
Quelqu'un pourrait m'aider ?
Merci !
Je voudrais obtenir le temps d'execution d'un traitement en sql à partir d'une date de début et d'une date de fin sous la forme : "2004-10-05 18:10:22".
Si je fais une requète simple du genre : "select date_fin_traitement - date_debut_traitement from traitement", il me done comme resultat : 0.45668552 ce qui equivaut à 0,45 jour.
Or je charche à avoir ce resultat sous la forme heure:minute:seconde.
Quelqu'un pourrait m'aider ?
Merci !
A voir également:
- [SQL oracle (sqlplus)] Comparatif dates
- Comparatif supermarché le moins cher - Accueil - Services en ligne
- Nombre de jours entre deux dates excel - Guide
- Blob sql ✓ - Forum Webmastering
- Sql lister les tables ✓ - Forum Programmation
- Oracle liste des tables ✓ - Forum Oracle
4 réponses
Bonjour,
La différence entre 2 variables de type date sous oracle retourne un nombre de jours. Pour calculer le temps écoulé en hh:mm:ss, il faut donc multiplier cette différence par 24h puis par 3600s :
(date_fin-dat_deb )*24*3600, soit 0.45668552*24*3600=39457.63s
Il suffit ensuite de formater en hh:mm:ss :
hh = Trunc(((date_fin-dat_deb )*24*3600)/3600) = 10h
mm = Trunc(Mod((date_fin-dat_deb )*24*3600,3600 )/60) = 57mn
ss = Mod(Mod((date_fin-dat_deb )*24*3600,3600),60) = 37.63s
sqlplus retourne directement le temps d'exécution par la commande :
SQL > Set Timing On
:)
La différence entre 2 variables de type date sous oracle retourne un nombre de jours. Pour calculer le temps écoulé en hh:mm:ss, il faut donc multiplier cette différence par 24h puis par 3600s :
(date_fin-dat_deb )*24*3600, soit 0.45668552*24*3600=39457.63s
Il suffit ensuite de formater en hh:mm:ss :
hh = Trunc(((date_fin-dat_deb )*24*3600)/3600) = 10h
mm = Trunc(Mod((date_fin-dat_deb )*24*3600,3600 )/60) = 57mn
ss = Mod(Mod((date_fin-dat_deb )*24*3600,3600),60) = 37.63s
sqlplus retourne directement le temps d'exécution par la commande :
SQL > Set Timing On
:)
Bonjour. Pour exemple voila comment faire un SQL select avec date entre deux autres dates.
select *
from my_table
where date_alpha BETWEEN
to_date('01.06.2007 00:00:00', 'dd.mm.yyyy HH24:MI:SS')
AND to_date('01.12.2007 00:00:00', 'dd.mm.yyyy HH24:MI:SS')
;
Salutations.
Alpha Beta
select *
from my_table
where date_alpha BETWEEN
to_date('01.06.2007 00:00:00', 'dd.mm.yyyy HH24:MI:SS')
AND to_date('01.12.2007 00:00:00', 'dd.mm.yyyy HH24:MI:SS')
;
Salutations.
Alpha Beta
bina2009
Messages postés
2
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
28 janvier 2009
28 janv. 2009 à 15:34
28 janv. 2009 à 15:34
Bonjour,
SELECT bkcli.cli,bkhis.age,bkhis.ncp,bkhis.ope,
bkhis.dco,bkprocli.pro,bkhis.eve,bkhis.lib,bkhis.mon
FROM bkhis,bkcom,bkcli
WHERE bkcli.cli=bkcom.cli
AND bkhis.ncp=bkcom.ncp
AND bkprocli.pro=@ AND bkhis.dco >=@ AND bkhis.dco <=@
ORDER BY 1,2,3,4,5,6,7,8;
cette une requete qui me permet de voir l'historique de compte selon le profils d'un client. le problème maintenant est k'il me donne un seul compte a la date introduit et pourtant je besoin de visualiser toutes les comptes mouvementer.
se ca mon soucis.
SELECT bkcli.cli,bkhis.age,bkhis.ncp,bkhis.ope,
bkhis.dco,bkprocli.pro,bkhis.eve,bkhis.lib,bkhis.mon
FROM bkhis,bkcom,bkcli
WHERE bkcli.cli=bkcom.cli
AND bkhis.ncp=bkcom.ncp
AND bkprocli.pro=@ AND bkhis.dco >=@ AND bkhis.dco <=@
ORDER BY 1,2,3,4,5,6,7,8;
cette une requete qui me permet de voir l'historique de compte selon le profils d'un client. le problème maintenant est k'il me donne un seul compte a la date introduit et pourtant je besoin de visualiser toutes les comptes mouvementer.
se ca mon soucis.