我有一个日期字段,数据格式为:1/20/2014 05:52:05.000000
现在我需要设置WHERE条件,以便从Fact表中获取最后18个月的数据(不包括当月)。 例如,如果我在二月份运行表格(日期字段有二月数据而我不需要这个),那么我应该从2015年1月和18个月后获得数据。
对此有什么疑问?
答案 0 :(得分:0)
使用TRUNC查找当月的第一天并从中减去18个月:
WHERE ts_col BETWEEN ADD_MONTHS(TRUNC(CURRENT_DATE, 'mon'), -18)
AND TRUNC(CURRENT_DATE, 'mon') -1
比较TIMESTAMP和DATE时,它会自动转换为DATE。