Oracle中实现日期范围查询的方法(oracle查询日期范围)

为了能够实现日期范围查询,在Oracle 中我们可以利用如下语句:

select * from table_name 
where date_field between '2019-12-01' and '2019-12-30'

这里介绍的查询条件是从2019年12月1日到2019年12月30日的数据,这里的日期是精确到天,如果改成精确到时分秒,需要在日期后面加上时分秒,比如:

select * from table_name 
where date_field between '2019-12-01 00:00:00' and '2019-12-30 23:59:59'

如果需要查询本月所有数据,我们可以使用Oracle提供的日期函数,比如同学们熟悉的TRUNC函数:

select * from table_name 
where date_field between
TRUNC (SYSDATE, 'MM')
and
TRUNC (SYSDATE + 1, 'MM') - 1/24/60/60

这里TRUNC函数后面接MM表示把当前系统时间SYSDATE精确到月份,也就是把日期通过该函数转换成`2019-12-01`,减去24/60/60就可以得到`2019-12-30 23:59:59`的数据了。

在Oracle中,还提供了一些方便的函数,比如可以通过如下语句实现“今天到明天”的查询:

select * from table_name 
where date_field Between TRUNC (SYSDATE) and TRUNC (SYSDATE + 1);

通过这条语句可以查询当前一天从零点到24点的所有数据,如果希望查询从当前时间到24点,可以使用下面这条语句:

select * from table_name 
where date_field Between SYSDATE and TRUNC (SYSDATE + 1);

通过以上介绍的Oracle函数,可以根据不同的需要,实现从准确到天到模糊到整月的日期范围查询。


数据运维技术 » Oracle中实现日期范围查询的方法(oracle查询日期范围)