我有一个查询来返回不在指定时间段内的记录,但我发现它没有返回准确的结果。
我的查询如下:
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
当我检查相反时也是如此。你可以看到提取的突出显示日期不正确。日期,月份和年份存储为单独的列(整数)因此我需要将它们一起投射在检查之前将其转换为日期格式。