事实表的日期字段中的最后18个月数据:在Teradata SQL Assistant中

时间:2015-02-04 21:33:46

标签: timestamp teradata

我有一个日期字段,数据格式为:1/20/2014 05:52:05.000000

现在我需要设置WHERE条件,以便从Fact表中获取最后18个月的数据(不包括当月)。 例如,如果我在二月份运行表格(日期字段有二月数据而我不需要这个),那么我应该从2015年1月和18个月后获得数据。

对此有什么疑问?

1 个答案:

答案 0 :(得分:0)

使用TRUNC查找当月的第一天并从中减去18个月:

WHERE ts_col BETWEEN ADD_MONTHS(TRUNC(CURRENT_DATE, 'mon'), -18) 
                            AND TRUNC(CURRENT_DATE, 'mon') -1

比较TIMESTAMP和DATE时,它会自动转换为DATE。