Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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 Oracle-日期时间上的条件_Sql_Database_Oracle_Select_Case - Fatal编程技术网

Sql Oracle-日期时间上的条件

Sql Oracle-日期时间上的条件,sql,database,oracle,select,case,Sql,Database,Oracle,Select,Case,我正在处理这个数据库,它包含工厂中的车间订单信息。我使用这个查询来检索订单数据,使用截止日期作为条件。它提取两周内关闭的订单 select order.id, order.end_date, material.id, material.description from plant.order inner join plant.material on order.material = material.id where order.end_date <= to_date('26/10/201

我正在处理这个数据库,它包含工厂中的车间订单信息。我使用这个查询来检索订单数据,使用截止日期作为条件。它提取两周内关闭的订单

select order.id, order.end_date, material.id, material.description
from plant.order inner join plant.material
on order.material = material.id
where order.end_date <= to_date('26/10/2018 06:00:00', 'DD/MM/YYYY HH24:MI:SS') 
where order.end_date <= to_date('12/10/2018 06:00:00', 'DD/MM/YYYY HH24:MI:SS') 
在这种情况下,订单id 1的日期应为2018年10月25日,而订单id 2的日期应为2018年10月26日

我希望我已经说清楚了


谢谢

您只需使用
TRUNC(order.end\u date-6/24)


    select 
       order.id, 
       order.end_date, 
       material.id, 
       material.description,
       case when TO_CHAR (order.end_date, 'HH24:MI:SS')<'06:00:00' then order.end_date- interval '1' day else order.end_date end as workday
    from plant.order inner join plant.material,
    on order.material = material.id
    where order.end_date <= to_date('26/10/2018 06:00:00', 'DD/MM/YYYY HH24:MI:SS') 
    where order.end_date <= to_date('12/10/2018 06:00:00', 'DD/MM/YYYY HH24:MI:SS') 
选择
订单号,
订单结束日期,
材料id,
材料说明,
案例何时显示字符(order.end\u日期'HH24:MI:SS')
WITH t AS (
   SELECT TO_DATE('26/10/2018 05:00' , 'dd/mm/yyyy hh24:mi') AS end_date FROM dual
   UNION ALL SELECT TO_DATE('26/10/2018 07:00' , 'dd/mm/yyyy hh24:mi') AS end_date FROM dual)
SELECT end_date, TRUNC(end_date - 6/24)
from t;


+----------------------------------------+
|END_DATE           |TRUNC(END_DATE-6/24)|
+----------------------------------------+
|26.10.2018 05:00:00|25.10.2018          |
|26.10.2018 07:00:00|26.10.2018          |
+----------------------------------------+
    select 
       order.id, 
       order.end_date, 
       material.id, 
       material.description,
       case when TO_CHAR (order.end_date, 'HH24:MI:SS')<'06:00:00' then order.end_date- interval '1' day else order.end_date end as workday
    from plant.order inner join plant.material,
    on order.material = material.id
    where order.end_date <= to_date('26/10/2018 06:00:00', 'DD/MM/YYYY HH24:MI:SS') 
    where order.end_date <= to_date('12/10/2018 06:00:00', 'DD/MM/YYYY HH24:MI:SS')