Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 定义逻辑以计算从凌晨02:00:00到凌晨02:00:00的日期_Sql_Oracle - Fatal编程技术网

Sql 定义逻辑以计算从凌晨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,

我有以下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, 
            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:可以,非常感谢,非常好的工作!!!!祝你和你的家人万事如意!!