[Redshift] interval values with month or year parts are not supported 에러 해결법
Redshift, oracle, postgre 등 다양한 DB가 있지만 오늘은 Redshift를 사용했을 때,
"interval values with month or year parts are not supported"
라는 에러 시 sql을 어떻게 수정할 수 있는지에 대하여 알아보도록 하겠다.
내가 날린 sql은
특정 칼럼 (데이터 타입: DATE) + interval '1 months' between '2023-01-01' and '2023-12-31'
이다.
그런데 위와 같이 sql을 적으니
interval values with month or year parts are not supported 라는 에러가 떴다.
심지어 초반 sql 실행을 했을 때는 잘 돌아가는 듯 하다가
중반쯤 되니 에러를 뱉으면서 돌아가지 않아서 굉장히 의아했다.
보통 syntax error시에 쿼리는 수행조차 되지 않기 때문에 이 경우는 뭐지하는 생각이 들었다.
하지만 에러 그대로 redshift는 month와 year 에 대해서 interval values를 지원하지 않는다는 것이다.
따라서 이 쿼리를 수정하기 위해서는,
dateadd라는 function을 사용해주면 되는데,
위와 같이 +interval '1 months'를 표현하기 위해서는
dateadd(month, 1, 원하는 칼럼)
이렇게 사용하면 된다.
마찬가지로 1년을 더하고 싶으면
dateadd(year, 1, 원하는 칼럼)
이런형태로 적어주면 된다.