MONTHS_BETWEEN 함수
MONTHS_BETWEEN은 두 날짜 사이의 월 수를 계산합니다.
첫 번째 날짜가 두 번째 날짜 이후인 경우에는 결과 값이 양수이고, 그렇지 않으면 결과 값이 음수입니다.
두 인수 중 하나라도 NULL이면 결과 값도 NULL입니다.
구문
MONTHS_BETWEEN( date1, date2 )
인수
- date1
-
DATE
데이터 형식의 열 또는 암시적으로DATE
형식으로 평가되는 표현식입니다. - date2
-
DATE
데이터 형식의 열 또는 암시적으로DATE
형식으로 평가되는 표현식입니다.
반환 타입
FLOAT8
결과 값에서 정수 부는 날짜의 년 값과 월 값의 차이에 따라 달라집니다. 결과 값에서 소수 부는 날짜 및 타임스탬프 값을 기준으로 계산되며, 한 달이 31일이라는 가정을 전제로 합니다.
date1과 date2 모두 월에서 동일한 날짜가 포함되어 있는 경우(예: 1/15/14와 2/15/14), 혹은 월에서 마지막 날짜가 포함되어 있는 경우(예: 8/31/14와 9/30/14)에는 타임스탬프 구간(있는 경우)의 일치 여부와 상관없이 날짜의 년 및 월 값에 따라 결과 값으로 정수가 반환됩니다.
예제
다음은 1/18/1969와 3/18/1969 사이의 월 수를 반환하는 예입니다.
select months_between('1969-01-18', '1969-03-18') as months;
months ---------- -2
다음은 1/18/1969와 1/18/1969 사이의 월 수를 반환하는 예입니다.
select months_between('1969-01-18', '1969-01-18') as months;
months ---------- 0
다음은 첫 번째 이벤트 공연 시점부터 마지막 공연 시점까지 월 수를 반환하는 예입니다.
select eventname, min(starttime) as first_show, max(starttime) as last_show, months_between(max(starttime),min(starttime)) as month_diff from event group by eventname order by eventname limit 5;
eventname first_show last_show month_diff --------------------------------------------------------------------------- .38 Special 2008-01-21 19:30:00.0 2008-12-25 15:00:00.0 11.12 3 Doors Down 2008-01-03 15:00:00.0 2008-12-01 19:30:00.0 10.94 70s Soul Jam 2008-01-16 19:30:00.0 2008-12-07 14:00:00.0 10.7 A Bronx Tale 2008-01-21 19:00:00.0 2008-12-15 15:00:00.0 10.8 A Catered Affair 2008-01-08 19:30:00.0 2008-12-19 19:00:00.0 11.35