获取具有 between 条件的数据



我有查询

select * from TABLE_NAME 
where date 
between to_date('26/01/2016', 'dd/mm/yyyy hh24:mi') 
and     to_date('26/01/2016', 'dd/mm/yyyy hh24:mi');

2016/01/26 23:59:32

上面的一个是运行查询时需要获取的日期

但是当我运行相同的查询时,它无法过滤。不知道为什么?

我不知道我哪里做错了。

介于 to_date('26/01/2016', '日/月/年 hh24:mi') 和 to_date('26/01/2016', '日/月/年 hh24:mi') 之间

您根本没有to_date('26/01/2016', 'dd/mm/yyyy hh24:mi')的任何时间部分。您只有日期部分,因此筛选器将忽略时间部分并返回该日期的所有行。查询中的时间部分为:

SQL> alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS';
Session altered.
SQL> SELECT to_date('26/01/2016', 'dd/mm/yyyy hh24:mi') FROM dual;
TO_DATE('26/01/2016
-------------------
26/01/2016 00:00:00

要使用您需要01/26/2016 11:59:32 PM过滤行:

TO_DATE('01/26/2016 11:59:32 PM' ,'DD/MM/YYYY HH:MI:SS PM')

最新更新