请帮我解决这个问题。
我有一个表,其中包含用户每天签入(checktype = I)和签出(checktype = 0)的时间,我想获得每个用户在特定时间 > 08:00 AM 的签入时间总量日期范围。
我正在使用下面的查询,但每个查询只处理一天,不在一个范围内,所以我必须使用 javascript 循环获取每个用户的延迟量(> 08:00 AM),例如从 2012 年 1 月 6 日到2012 年 6 月 6 日
请帮助我在单个查询中从 ex:01/06/2012 到 06/06/2012 获取每位用户的签入时间 > 08:00 AM(例如:userid 708)。
with tt as
(
select TO_DATE('01/06/2012 08:00:00','dd/mm/yyyy hh24:mi:ss') date1 ,
checktime date2
from
checkinout
where
userid = '708' and
to_char(checktime,'dd/mm/yyyy') = '01/06/2012' and
checktype='I' -- checktype I is check in
) , t2 as
(
select numtodsinterval(date2 - date1,'day') dsinterval from tt
)
select extract(hour from dsinterval) || ' hours ' ||
extract(minute from dsinterval) || ' minutes ' ||
round(extract(second from dsinterval)) || ' seconds' late from t2