我在SQLA上发出以下SELECT(Teradata版本:15.10.01.11):
select cast('2018-05-31' as date format 'yyyy-mm-dd') - interval '6' month;
我得到了:SELECT失败了。 2665:无效日期。 任何帮助将不胜感激。
BR,
Shardul
答案 0 :(得分:1)
根据标准SQL减去2018-05-31
后6个月的结果2017-11-31
显然不存在。
区间算术不能用于月/年(2月29日),更好地使用ADD_MONTHS
:
ADD_MONTHS(DATE '2018-05-31', -6)
还有oADD_MONTHS
,它可能会在月结束日期返回不同的结果,例如
ADD_MONTHS(DATE '2017-11-30', 6) -> 2018-05-30
oADD_MONTHS(DATE '2017-11-30', 6) -> 2018-05-31