为了能够实现日期范围查询,在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函数,可以根据不同的需要,实现从准确到天到模糊到整月的日期范围查询。