SQL: Dodaj lub odejmij miesiąc (ADD_MONTHS)
wtorek, listopad 13th, 2007Funkcja SQL ADD_MONTHS(d,n) dodaje do daty d zadaną ilość miesięcy. Gdy n jest liczbą ujemną, to funkcja ADD_MONTS odejmuje zadaną ilość miesięcy.
Należy podkreślić, że gdy d jest ostatnim dniem miesiąca lub miesiąc wynikowy ma mniej dni niż miesiąc daty wynikowej, zwracany jest ostatni dzień miesiąca.
Poniższy przykład pokazuje działanie funkcji ADD_MONTHS dla dat w na początku, w środku i na końcu miesiąca:
alter session set nls_date_format = 'YYYY-MM-DD'
/
select d "Data", add_months(d,1) "Data+1m", add_months(d,-1) "Data-1m" from
(
select '2007-09-01' d from dual union all
select '2007-09-05' d from dual union all
select '2007-09-30' d from dual union all
select '2007-10-31' d from dual
)
/
Data Data+1m Data-1m
---------- ---------- ----------
2007-09-01 2007-10-01 2007-08-01
2007-09-05 2007-10-05 2007-08-05
2007-09-30 2007-10-31 2007-08-31
2007-10-31 2007-11-30 2007-09-30