2016-08-30 52 views
0

這對於Teradata來說在技術上是這樣,儘管它在SQL中類似。好的,在SQL查詢中可能不會出現同樣的錯誤,如果有的話,也許有Teradata經驗的人可以回答這個問題。我有一個結尾的查詢:查詢不存在的前一天的SQL查詢

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

它工作得很好,直到今天,我猜這是今天不工作,因爲2月30日不是一回事。不知道是否有一個簡單的解決方案,但肯定希望,也許像

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

或其他。

回答

2

這不是Teradata的邏輯,這是愚蠢的標準SQL(事實上,你不能使用區間語法都YEAR和MONTH)。

這就是爲什麼有ADD_MONTHS :-)

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

得到TD論壇帖子的解決方案。爲了將來在這個絆腳石的那些...

ADD_MONTHS(DATE,-6)