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

在 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 月份的全部时间 ,但是不包括二月份 。

你可能感兴趣的:(SQL 中日期使用 BETWEEN 时的边界值范围)