获取不在postgres中的两个日期之间的记录未正确获取

时间:2014-05-07 11:25:01

标签: postgresql date

我有一个查询来返回不在指定时间段内的记录,但我发现它没有返回准确的结果。

我的查询如下:

select * 
from raj_monthly_records 
where cast(date_dimension_year||'-'||date_dimension_month||'-'||date_dimension_day as date) 
not BETWEEN  to_date('2013-05-01','YYYY-MM-DD') and to_date('2014-05-01','YYYY-MM-DD');

我也尝试过这种方式

select * 
from raj_monthly_records 
where cast(date_dimension_year||'-'||date_dimension_month||'-'||date_dimension_day as date) 
    not BETWEEN  '2013-05-01' and '2014-05-01';

,结果两次都是:

 date_dimension_year    date_dimension_month    date_dimension_day 

       **2014                             5            18**
       **2014                             5             6**
       **2014                             5             5**  
       2013                           1             5

当我检查相反时也是如此。你可以看到提取的突出显示日期不正确。日期,月份和年份存储为单独的列(整数)因此我需要将它们一起投射在检查之前将其转换为日期格式。

0 个答案:

没有答案