度量快速开发平台-专业、快速的软件定制快开平台

标题: oracle between and 边界问题 [打印本页]

作者: fteair    时间: 2020-2-7 18:02

作者: 张兴康    时间: 2020-2-8 13:46
fteair 发表于 2017-3-7 18:02


作者: 张兴康    时间: 2020-7-4 13:36
标题: oracle between and 边界问题
--创建一个表  
create table test_hsj(  
id int primary key,  
num varchar2(12),  
regDate date  
)  


select * from test_hsj;  

--插入测试数据  
insert into test_hsj values(1,'1', to_date('2015-05-01','yyyy-MM-dd'))  
insert into test_hsj values(2,'2', to_date('2015-06-01','yyyy-MM-dd'))  
insert into test_hsj values(3,'3', to_date('2015-05-11','yyyy-MM-dd'))  
insert into test_hsj values(4,'4', to_date('2015-05-01','yyyy-MM-dd'))  
insert into test_hsj values(5,'5', to_date('2015-06-21','yyyy-MM-dd'))  
insert into test_hsj values(6,'6', to_date('2015-06-11','yyyy-MM-dd'))  
insert into test_hsj values(7,'7', to_date('2016-06-11','yyyy-MM-dd'))  
insert into test_hsj values(8,'8', to_date('2014-04-01','yyyy-MM-dd'))  
--查询验证,日期在 5 月到6月份之间的数据 如果转换为日期的时候,只有年月的时候会默认取1号 between and 会包含两端 包含两端  
--1 结论:对于日期类型 between and  包括  >= and <=  
select * from test_hsj where regdate between to_date('2015-05','yyyy-MM') and to_date('2015-06','yyyy-MM')  
--如果只有年月 则只会去 1号  
select to_date('2015-05','yyyy-MM') from dual  
--如果只有年,那么回去当前月份 的1 号   
select to_date('2014','yyyy') from dual  
--2 结论: 对于数值类型 between and  等效  >= and <=  
select * from test_hsj where id between 1 and 5;  

--3 结论: 对于字符类型 between and  等效  >= and <=  
select * from test_hsj where num between '1' and '5';  
--总结论: 对于orcle数据库 between and  等效  >= and <=  


作者: 张兴康    时间: 2020-7-4 13:36

作者: 陈晓龙    时间: 2020-7-6 15:40

作者: 陈晓龙    时间: 2020-7-6 15:40

作者: 张兴康    时间: 2020-7-6 16:53
陈晓龙 发表于 2017-2-6 15:40

太猖狂了,又回复两个
作者: 陈晓龙    时间: 2020-7-7 17:45
张兴康 发表于 2017-2-6 16:53
太猖狂了,又回复两个

{:3_42:




欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2