Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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_Oracle - Fatal编程技术网

SQL oracle检查可用日期

SQL oracle检查可用日期,sql,oracle,Sql,Oracle,我需要查询以检查不冲突的日期(例如假期请求) 从表1中选择all,其中输入参数为date_from和date_to from new draft row 表1(我的同事的要求): 新草稿行(我的请求): 如何从表1中获取新行没有冲突的所有行。 在我的示例中(行id 1和3)。我认为您需要检查重叠的时段,以确保没有重叠: select t2.*, t1.* from table1 t1 join table2 t2 on t1.date_to < t23.date_fro

我需要查询以检查不冲突的日期(例如假期请求)

从表1中选择all,其中输入参数为date_from和date_to from new draft row

表1(我的同事的要求):

新草稿行(我的请求):

如何从表1中获取新行没有冲突的所有行。
在我的示例中(行id 1和3)。

我认为您需要检查重叠的时段,以确保没有重叠:

select t2.*, t1.*
from table1 t1 join
     table2 t2
     on t1.date_to < t23.date_from or
        t1.date_from > t2.date_to;
选择t2.*,t1*
来自表1的t1连接
表2 t2
在t1.date\u至t2.date\u to;
也就是说,如果第二个表在行开始之前结束或在行结束之后开始,则不存在重叠


他是一把小提琴。这将返回第2行和第4行,因为这些行没有重叠。

另外,您真的应该在使用“截止日期”时提供一个格式掩码。如下所示:到没有格式掩码的日期('14.05.2021','dd.mm.yyyy'),您取决于客户端的NLS\u date\u格式设置,这可能是您所期望的,也可能不是您所期望的。什么是“没有冲突”?Tnx寻求帮助,但我得到3行。@Pointer。我修正了一个打字错误,加了一把小提琴。
Select to_date('05.05.2021') as date_from,to_date('10.05.2021') as date_to, 'New' as yes_no from dual
select t2.*, t1.*
from table1 t1 join
     table2 t2
     on t1.date_to < t23.date_from or
        t1.date_from > t2.date_to;