查询前一天不存在的SQL查询

时间:2016-08-30 16:20:01

标签: sql date teradata

这在技术上适用于Teradata,尽管它在SQL中类似。好吧,在SQL查询中可能不会发生同样的错误,如果是这样,也许有Teradata经验的人可以回答这个问题。我有一个以:

结尾的查询
WHERE DB.LOG_DATE > DATE - INTERVAL '6' MONTH;

直到今天才工作正常,我猜它今天不起作用,因为2月30日不是一件事。不确定是否有一个简单的解决方案,但肯定希望,可能像

WHERE DB.LOG_DATE > ROUND(DATE - INTERVAL '6' MONTH);

或者其他什么。

2 个答案:

答案 0 :(得分:2)

这不是Teradata逻辑,它是愚蠢的标准SQL(实际上你不能在YEAR和MONTH使用INTERVAL语法)。

这就是ADD_MONTHS的原因: - )

WHERE DB.LOG_DATE > ADD_MONTHS(DATE,-6);

答案 1 :(得分:0)

从TD论坛帖子中获得解决方案。对于那些在未来绊脚石的人......

ADD_MONTHS(DATE,-6)