Oracle的overlaps函数转换其他数据库语法

首先,来介绍一下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‘)

原文地址:https://www.cnblogs.com/hq233/p/12199676.html

时间: 2024-10-10 14:54:37

Oracle的overlaps函数转换其他数据库语法的相关文章

数据库开发基础-教案-5-字符串函数、时间日期函数、数据转换,函数转换

字符串函数: 时间日期函数: SET DATEFIRST 1 SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today' SELECT GETDATE() 数据转换.函数转换: 练习:查看名字,生日

数据库基础(字符串函数、时间日期函数、数据类型转换、函数转换)

字符串函数: 时间日期函数: 数据转换.函数转换: 练习:查看名字,生日

Oracle经常使用函数

Oracle经常使用函数 --TRUNC,TO_DATE,TO_CHAR,TO_NUMBER, SUBSTR,REPLACE.NVL .TRIM,wm_concat,upper, lower,length,add_months(sysdate,1) 查看oracle版本号: SELECT * from v$version 一.trunc函数 1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值. 其详细的语法格式例如以下: TRUNC(date[,fmt]) 当中:dat

【Oracle】Oracle中常用函数大全

Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能.函数可以接受零个或者多个输入参数,并返回一个输出结果. oracle 数据库中主要使用两种类型的函数: 1.  单行函数:对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果, 比如:MOD(x,y)返回 x 除以 y 的余数(x 和 y 可以是两个整数,也可以是表中的整 数列).常用的单行函数有: Ø  字符函数:对字符串操作. Ø  数字函数:对数字进行计算,返回一个数字. Ø  转换函

[独孤九剑]Oracle知识点梳理(九)数据库常用对象之常见package

本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL [独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table.View [独孤九剑]Oracle知识点梳理(六)数据库常用对象之Procedure.function.Sequence [独孤九剑]Oracle知识点梳理(七)数据库常用对象之Curs

[独孤九剑]Oracle知识点梳理(六)数据库常用对象之Procedure、function、Sequence

本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL [独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table.View [独孤九剑]Oracle知识点梳理(七)数据库常用对象之Cursor [独孤九剑]Oracle知识点梳理(八)常见Exception [独孤九剑]Oracle知识点梳理(九)数

Oracle时间日期函数

ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年                显示值:07        yyy three digits 三位年                显示值:007        yyyy four digits 四位年                显示值:2007                    Month

Oracle中PL/SQL简介、基本语法以及数据类型

Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控制为一体的强大语言,PL/SQL不但支持更多的数据类型,拥有自身的变量申明,赋值语句,而且还有条件,循环等流程控制语句.过程控制结构与SQL数据处理能力无缝的结合形成了强大的编程语言,可以创建过程和函数以及程序包. PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性的发送给服务器,由服

Oracle的REGEXP_INSTR函数简单使用方法

REGEXP_INSTR函数让你搜索一个正則表達式模式字符串. 函数使用输入字符集定义的字符进行字符串的计算. 它返回一个整数,指示開始或结束匹配的子位置.这取决于return_option參数的值.假设没有找到匹配.则函数返回0. 语法 Oracle数据库中的REGEXP_INSTR函数的语法是: REGEXP_INSTR (source_char, pattern [, position [, occurrence [, return_option [, match_parameter ]