john cleese a écrit :
'soir... Je propose : select ceil((madate-date '-3000-01-01')*144)/144+date '-3000-01-01', ceil((madate-date '-3000-01-01')*144)/144+date '-3000-01-01' + 1/144, count(*) from majolietable group by ceil((madate-date '-3000-01-01')*144)/144+date '-3000-01-01', ceil((madate-date '-3000-01-01')*144)/144+date '-3000-01-01' + 1/144; Mais ici, je ne peux pas tester... Donc à voir. En tout cas, je checkerai ça lundi au boulot, et je corrigerai au besoin...Pour le boulot, j'avais fait la même chose, donc sûr que ça fonctionne comme ça
|
Alors, supposons que ta table (nommons-là FRANCOISE) soit de cette forme :
site (varchar2)
date_operation (date ou timestamp)
+ diffèrents champs concernant le détail de l'opération
==> ta requête pour obtenir le nb. d'opérations par tranche de 30 minutes serait de la forme :
select site,
to_char(floor((date_operation-date '-3000-01-01')*48)/48+date '-3000-01-01','HH24:MI:SS') heure_debut,
to_char(floor((date_operation-date '-3000-01-01')*48)/48+date '-3000-01-01' + 30/1440 - 1/86400,'HH24:MI:SS') heure_fin,
count (*)
from FRANCOISE
group by
site,
to_char(floor((date_operation-date '-3000-01-01')*48)/48+date '-3000-01-01','HH24:MI:SS'),
to_char(floor((sysdate-date '-3000-01-01')*48)/48+date '-3000-01-01' + 30/1440 - 1/86400,'HH24:MI:SS');
Pour t'en assurer, essaie déjà ceci :
select
to_char(floor((sysdate-date '-3000-01-01')*48)/48+date '-3000-01-01','HH24:MI:SS') ,
to_char(floor((sysdate-date '-3000-01-01')*48)/48+date '-3000-01-01' + 30/1440 - 1/86400,'HH24:MI:SS')
from dual;
Message édité par john cleese le 26-06-2014 à 17:07:12