oracle中over函数用法_truncate table语法

oracle中over函数用法_truncate table语法首先,来介绍一下Oracle的overlaps函数的用法:overlaps函数是用来判断两个时间段是否有重叠的比如说计算(a,b),(c,d)就可以写成:select*fromdualwhere(a,b)overlaps

oracle中over函数用法_truncate table语法

首先,来介绍一下Oracle的overlaps函数的用法:

overlaps函数是用来判断两个时间段是否有重叠的

比如说计算 (a,b),(c,d)

就可以写成:

select * from dual where (a,b) overlaps (c,d);

其中abcd都是日期格式。

注意:比较的只能是日期。如果是数字,则会报错 ORA-00932: inconsistent datatypes

最近项目在使用db2数据库,遇到overlaps函数需要转换成db2中的语法方言,其实就是转换为通用的sql语法。

对应的写法有:

判断两个时间段是否有重叠

(a,b),(c,d)

判断两段时间是否有重叠

方法一

select ‘yes’ from dual where d>a and c<b;

例子:

select *
from PMK_PLANNING_INFO
where id = ‘U2KsqII5NdumrClO5td’
and to_date(‘2019/07/27’, ‘YYYY/MM/DD’) > to_date(begin_time)
and to_date(‘2018/06/27’, ‘YYYY/MM/DD’) < to_date(end_time);

方法二

select ‘yes’ from dual where (a, b) overlaps (c,d);

例子:

select *
from PLANNING_INFO
where id = ‘001’
and (to_date(begin_time), to_date(end_time))
overlaps
(to_date(‘2018/06/27’, ‘YYYY/MM/DD’),
to_date(‘2019/07/27’, ‘YYYY/MM/DD’));

方法三

select ‘yes’ from dual where a between c and d or d between a and b;

例子:

select *
from PMK_PLANNING_INFO
where id = ‘U2KsqII5NdumrClO5td’
and to_date(begin_time) between to_date(‘2018/06/27’, ‘YYYY/MM/DD’) and to_date(‘2019/07/27’, ‘YYYY/MM/DD’)
or to_date(‘2019/07/27’, ‘YYYY/MM/DD’) between to_date(begin_time) and to_date(end_time);

a : to_date(begin_time)

b :to_date(end_time)

c :to_date(‘2018/06/27’, ‘YYYY/MM/DD’)

d :to_date(‘2019/07/27’, ‘YYYY/MM/DD’)

今天的文章oracle中over函数用法_truncate table语法分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/88873.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注