SQL 中日期使用 BETWEEN 时的边界值范围

本文详细解析了在Oracle数据库中如何使用BETWEEN操作符进行时间范围查询,特别强调了边界值的处理方式,以及在进行月份范围查询时的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 ORACLE 中要判断某个时间点在一个时间段中间可以使用 BETWEEN ,语句如下

SELECT *
FROM TEMP_TABLE
WHERE TARGET_DATE BETWEEN to_date('2020-01-01', 'yyyy-mm-dd') AND to_date('2020-02-01', 'yyyy-mm-dd')

在进行时间比较的时候 ORACLE 会自动将输入的两个日期格式化为 2020-01-01 00:00:00 以及 2020-02-01 00:00:00 , 然后判断目标时间是不是在这两个时间之中 。


这种情况下我们需要了解的是这个时间判断的边界值是多少 ,我们生成四个时间点 ,分别是 2019-12-31 23:59:59 ,2020-01-01 00:00:00 ,2020-01-31 23:59:59, 2020-02-01 00:00:00


运行上面的语句 ,查询出来的结果有两条 ,分别是 2020-01-01 00:00:00 以及 2020-01-31 23:59:59 。
也就是说 ,在使用 BETWEEN 进行时间范围计算时,起始时间可以等于目标时间 ,但是结束时间必须大于目标时间 ,特别是要取日期或者月份的时候

TARGET_DATE BETWEEN to_date('2020-01', 'yyyy-mm') AND to_date('2020-02', 'yyyy-mm')

像这个语句 取到的是 1 月份的全部时间 ,但是不包括二月份 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值