Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : Général » Agrégat sur des intervals » 24/03/2020 09:25:10
Il faut ajouter HH24 sinon... pour une durée de 00:21:07
- avec HH on obtient 0 mois 00 jours 12 heures 21 min 07 sec
- avec HH24 on obtient la bonne transcription : 0 mois 00 jours 00 heures 21 min 07 sec
Encore merci pour vos retours
#2 Re : Général » Agrégat sur des intervals » 23/03/2020 18:16:16
je me réponds ...
Pour avoir les mois , j'ai remplacé Justify_hours par justify_interval et j'ai rajouté un to_char pour avoir ma durée en mois, jours etc ...
Qu'en pensez vous ?
select to_char(justify_interval( ('23-03-2020 16:00'::timestamp - '19-01-2020 06:30'::timestamp) +
('19-03-2020 06:29'::timestamp - '15-01-2020 06:30'::timestamp)),'mm "mois" DD "jour(s)" HH "heure(s)" MI "min"' );
Ca à l'air d'être correct et en plus j'ai ma durée en français !
#3 Re : Général » Agrégat sur des intervals » 23/03/2020 17:50:33
Encore un petite question est ce qu'on peut avoir la durée sous forme de d'année, mois , jour heure minute ?
exemple 0 year 3 month 12 days 02:30:10
#4 Re : Général » Agrégat sur des intervals » 23/03/2020 17:45:30
Super ! merci beaucoup ! Ca fait depuis ce matin que je cherche !
Portez vous bien !
#5 Re : Général » Agrégat sur des intervals » 23/03/2020 17:34:28
Bonjour et merci pour votre réponse rapide
la requête fonctionne bien, mais ce n'est pas une requête avec un agrégat (sum) , comme dans mon exemple ...
#6 Général » Agrégat sur des intervals » 23/03/2020 16:54:08
- Olivier MAMDY
- Réponses : 10
Bonjour à tous
Je cherche à calculer sur une période, le temps d’indisponibilité d'engins, en faisant la somme des durées d'indisponibilité (agrégat);
La durée d'indisponibilité est calculée avec avec la date de fin arret - la date de début d'arret (les 2 champs sont au format timestamp)
voici mon code sql
SELECT arret.id_bacs,
EXTRACT(YEAR FROM arret.date_debut_arret) AS Année,
EXTRACT(MONTH FROM arret.date_debut_arret) AS Mois,
count(arret.id_arret) AS nbreArret,
sum(arret.date_fin_arret - arret.date_debut_arret) as Duree,
ta.arret_cause
FROM arret, type_arret ta
WHERE arret.id_type_arret = ta.id_type_arret and arret.id_bacs = 2
GROUP BY arret.id_bacs, année,mois,ta.arret_cause
ORDER BY arret.id_bacs,année desc;
la requête fonctionne, mais j'ai certains résultats pour ma durée qui apparaissent comme ceci: 7 days 33:30:10 ... la somme s'effectue bien , mais on constate que les heures n'ont pas été transformées en jours ... le bon résultats aurait dû être : 8 days 09:30:10 Non ?
PS ... Peut-on transformer le résultat en français ? 7 jours 09:30:10
Pages : 1