Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 29/03/2012 15:28:20
- mollux78
- Membre
Requête
J'ai une requête sous postgres :
select distinct a.application,j.job, j.cycle, j.cyclique, j.utilisateur, j.machine, h.date_debut, 24*3600*(to_date(h.date_fin,'DD-MM-YYYY HH24:MI:SS')-to_date(h.date_debut,'DD-MM-YYYY HH24:MI:SS')) as duree, h.statut from t_application a, t_job j, t_histo_stat h where to_date(h.date_fin,'DD-MM-YYYY HH24:MI:SS') between LOCALTIMESTAMP - interval '2 day' and LOCALTIMESTAMP + interval '0 day' and h.environnement ='SIE-VALO-FACTU' and a.application = h.appli and j.job = h.job and j.id_domaine = 1 and a.id_environnement_ora = j.id_environnement_ora and a.id_application_ora = j.id_application_ora and h.statut != 'NON-PLANIFIE' and h.date_fin != h.date_debut order by a.application, j.job, h.date_debut;
le champ durée me donne une valeur entière 0 ou 1. Alors qu'en oracle, j 'avais le champ durée avec des 0,03... ETC
COmment est il possible de formater dans ma requête le champ durée pour avoir des chiffres à la virgule ?
Hors ligne
#2 29/03/2012 17:15:03
- gleu
- Administrateur
Re : Requête
duree est construit ainsi 24*3600*(to_date(h.date_fin,'DD-MM-YYYY HH24:MI:SS')-to_date(h.date_debut,'DD-MM-YYYY HH24:MI:SS'))
Comme l'indique http://docs.postgresql.fr/9.1/functions-datetime.html, une date (type du résultat de la fonction to_date) soustrait à une date (là-aussi type du résultat de la fonction to_date) donne un entier. Un entier multiplié à un entier donne un entier. Donc le résultat est forcément un entier. Faire une conversion en flottant ou forcer l'affichage de chiffre après la virgule n'y changera rien.
Guillaume.
Hors ligne