查找日期介于两天之间的行

时间:2017-11-07 09:23:12

标签: sql oracle oracle11g

我正在尝试从oracle db中检索日期在两个特定日期之间的行。

FIRST_ACTIVE_TS
---------------
17-11-07
17-11-07

查询我正在使用:

select first_active_ts from <Table name> where TRUNC(first_active_ts) 
between TO_DATE('2017-11-06','YYYY-MM-DD') and TO_DATE('2017-11-08','YYYY-MM-DD');

但查询返回0行。

2 个答案:

答案 0 :(得分:2)

select first_active_ts
from   <Table name>
where  first_active_ts >= DATE '2017-11-06'                     -- Start date
AND    first_active_ts <  DATE '2017-11-08' + INTERVAL '1' DAY; -- End date+1 day
  

但查询返回0行。

您的日期以RR-MM-DD格式显示。使用TO_CHAR( first_active_ts, 'YYYY-MM-DD' )显示它们,您可能会发现错误地将年份输入为0017而不是2017。如果是这种情况,那么查询正确返回零行,您将需要修复数据。

答案 1 :(得分:0)

SELECT FIRST_ACTIVE_TS FROM <TABLE_NAME> WHERE  FIRST_ACTIVE_TS BETWEEN 
TO_DATE('2017-11-06','YYYY-MM-DD') AND TO_DATE('2017-11-08','YYYY-MM-DD');