不用函数,在SQL里写两个时间范围有交集则成立例如:
start_date_time stop_date_time 两个字段判断[start_date_time stop_date_time]与[20100628 07 20100629 08]存在交集则成立!
start_date_time stop_date_time 两个字段判断[start_date_time stop_date_time]与[20100628 07 20100629 08]存在交集则成立!
解决方案 »
- 删除数据库表问题??
- 请较高人,为什么同一条sql语句执行会有0.4s时间的差异?
- 对指定表的若干行记录按照某字段进行分段
- 如何按依赖关系获得视图名称
- java中调用oracle8i存储过程,有时能返回值,有时不能(在数据库中执行确认有值)
- oracle数据库导入错误????
- pl/sql 使用时报错!!请熟悉pl/sql的人士指点
- 老问题,推荐oracle电子书籍和下载地点,谢谢
- 如何获得外键约束的详细信息?
- 一个简单的存储过程,为什么过不去??
- 紧急求助:ORA-01017: invalid username/password; logon denied
- 3个select count(*)做union后,如果都是0的话,怎么就1行数据?
SQL如下SELECT stop_date_time,start_date_time FROM TEMP_TABLE
INTERSECT
SELECT '20100626 07' AS stop_date_time,'20100629 08' AS start_date_time
FROM TEMP_TABLE2
&& start_date_time <= to_date('20100629 080101','YYYYMMDD HH24MiSS'))
||
(stop_date_time >= to_date('20100626 070101','YYYYMMDD HH24MiSS')
&& stop_date_time <= to_date('20100629 080101','YYYYMMDD HH24MiSS')))
:)
start_date_time stop_date_time]与[20100628 07 20100629 08where 20100629 08>=start_date_time and 20100628<=stop_date_time即可
FROM TEMP_TABLE
WHERE ( ('20100626' BETWEEN start_date_time AND stop_date_time) OR ('20100628' BETWEEN start_date_time AND stop_date_time) )
FROM TEMP_TABLE
WHERE ('20100626' BETWEEN start_date_time AND stop_date_time) OR ('20100628' BETWEEN start_date_time AND stop_date_time) or ('20100626' <start_date_time and '20100628' > stop_date_time)
FROM TEMP_TABLE
WHERE not('20100628'<start_date_time or '20100626'>stop_date_time)
少考虑了一种情况,[start_date_time stop_date_time]在[20100628 07,20100629 08] 之间, 也有可能的啊,所以要或一下第二种情况。