Sql 定义逻辑以计算从凌晨02:00:00到凌晨02:00:00的日期
我有以下sql查询获取全天的总小时数, 此查询工作正常,但对象的日期从凌晨02:00:00到次日凌晨02:00:00,在此查询中,它按正常工作时间12:00:00到中午12:59:59对白天进行分组。 如何将逻辑添加到从凌晨02:00:00到凌晨02:00:00的组日间Sql 定义逻辑以计算从凌晨02:00:00到凌晨02:00:00的日期,sql,oracle,Sql,Oracle,我有以下sql查询获取全天的总小时数, 此查询工作正常,但对象的日期从凌晨02:00:00到次日凌晨02:00:00,在此查询中,它按正常工作时间12:00:00到中午12:59:59对白天进行分组。 如何将逻辑添加到从凌晨02:00:00到凌晨02:00:00的组日间 select object_code, sum(on_stream_hrs) on_stream_hrs, daytime from(select object_code,
select object_code,
sum(on_stream_hrs) on_stream_hrs,
daytime
from(select object_code,
on_stream_hrs,
trunc(daytime) daytime
from sub_day_status
where trunc(daytime) between to_date('1 Feb 2017') and to_date('28 Feb 2017')
)
where (object_code, daytime) in (select object_code,
trunc(daytime)
from sub_day_status
where trunc(daytime) between to_date('1 Feb 2017') and to_date('28 Feb 2017')
and on_stream_hrs >0.5)
group by object_code, daytime
order by daytime
谢谢,
在截止日期(2017年2月1日)和截止日期(2017年2月28日)之间
2017’)
您可以通过以下操作将日期移动2小时
select to_date('1 Feb 2018', 'DD MON YYYY') + 2/24 from dual
在截断之前,只需从
白天减去2小时:
SELECT object_code,
SUM( on_stream_hrs ) AS on_stream_hrs,
TRUNC( daytime - INTERVAL '2' HOUR ) AS daytime
FROM sub_day_status
WHERE daytime >= DATE '2017-02-01' + INTERVAL '2' HOUR
AND daytime < DATE '2017-03-01' + INTERVAL '2' HOUR
GROUP BY
object_code,
TRUNC( daytime - INTERVAL '2' HOUR )
HAVING MAX( on_stream_hrs ) > 0.5
ORDER BY
daytime;
选择对象\u代码,
与在线时数之和(在线时数),
TRUNC(日间-间隔“2”小时)为日间
从sub_day_状态
其中白天>=日期“2017-02-01”+间隔“2”小时
白天<日期'2017-03-01'+间隔'2'小时
分组
对象代码,
TRUNC(日间-间隔“2”小时)
最大值(流上小时数)>0.5
订购人
白天;
相关子查询似乎可以使用简单的WHERE on_stream\u hrs>0.5
或使用HAVING
子句(如上所述)取决于您希望如何筛选行。我想您可以将时区移动两个小时。我发现了一些类似的东西,但不确定我是否可以在这里应用它,但我如何在凌晨2:00:00到凌晨2:00:00之间区分白天组,所以它只计算凌晨2:00:00到凌晨2:00:00之间的小时数?不,这并没有给我任何东西,还有问题,我怎么能告诉大家在凌晨02:00:00到凌晨02:00:00之间分组,所以从凌晨02:00:00到凌晨02:00:00之间的总时间只有几个小时?对MTO:可以,非常感谢,非常好的工作!!!!祝你和你的家人万事如意!!