2017-12-30 14 views
0

테라 데이타는 실패 내장 기능, 간격, 간격 기능을 대신 월 달에테라 데이타 간격 기능

SELECT Cast('2017-12-29' as date) - INTERVAL '10' MONTH; 
SELECT Cast('2017-12-30' as date) - INTERVAL '10' MONTH; 
SELECT Cast('2017-12-31' as date) - INTERVAL '10' MONTH; 
SELECT Cast('2018-12-29' as date) - INTERVAL '10' MONTH; 
SELECT Cast('2018-12-30' as date) - INTERVAL '10' MONTH; 
SELECT Cast('2018-12-31' as date) - INTERVAL '10' MONTH; 
SELECT Cast('2019-12-29' as date) - INTERVAL '10' MONTH; 
SELECT Cast('2019-12-30' as date) - INTERVAL '10' MONTH; 
SELECT Cast('2019-12-31' as date) - INTERVAL '10' MONTH; 
SELECT Cast('2020-12-30' as date) - INTERVAL '10' MONTH; 
SELECT Cast('2020-12-31' as date) - INTERVAL '10' MONTH; 

또는

SELECT CURRENT_DATE - INTERVAL '10' MONTH;-- << If current date is 29,30,31 day of December month Non leap year and 30,31 day of December month leap year>> 
+1

어떤 방식으로 "실패"합니까? 오류 메시지 란 무엇입니까? –

+1

요청대로하고 있습니다 만, 10 개월 되돌아갑니다. 그러나 2 월에 31 일이 없기 때문에 '날짜가 잘못되었습니다'라는 메시지가 나타납니다. 나는 그것이 '2020-12-29'가 귀하의 목록에없는 이유입니다. 왜냐하면 그것이 작동하기 때문입니다. 발견 한대로 도달 할 수없는 일에 월말을 사용하여 add_months accts가 다릅니다. – ULick

답변

1

사용 ADD_MONTHS 함수를 날짜를 유도하기위한 MONTH 사양을 사용하는 경우 ..

SELECT ADD_MONTHS(CAST ('2017-12-29' AS DATE),-10); 
SELECT ADD_MONTHS(CURRENT_DATE,-10); -- << If current date is 29,30,31 day of December month Non leap year and 30,31 day of December month leap year>> 
관련 문제