ADD_MONTHS関数は、日付dateに月数integerを加算した値を戻します。
SQL構文
ADD_MONTHS(date,integer)
パラメータ
ADD_MONTHSには、次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
date |
dateには、日時値、または暗黙的にDATEに変換可能な任意の値を指定できます。 |
integer |
integerには、整数、または暗黙的に整数に変換可能な任意の値を指定できます。 |
説明
戻り型は、dateのデータ型にかかわらず常にDATEです。 サポートされるデータ型は、DATEおよびTIMESTAMPです。
データ型TT_DATEおよびTT_TIMESTAMPはサポートされていません。
dateが月の最終日である場合、または結果となる月の日数がdateの日付部分より少ない場合、結果となる月の最終日が戻されます。それ以外の場合は、dateと同じ日付部分が結果として戻されます。
例
ADD_MONTHS関数をコールして2007年1月31日という日付に1か月を加算します。2月の最終日が戻されます。
Command> SELECT ADD_MONTHS (DATE '2007-01-31', 1) FROM dual; < 2007-02-28 00:00:00 > 1 row found.
dateがTIMESTAMP型の場合、ADD_MONTHSによりDATEデータ型が戻されます。
Command> DESCRIBE SELECT ADD_MONTHS (TIMESTAMP '2007-01-31
10:00:00', 1) FROM dual;
Prepared Statement:
Columns:
EXP DATE NOT NULL
HRスキーマを使用して、employee_id、last_nameおよびhire_dateを表示する、employees表の先頭の5行を選択します。 CREATE TABLE ... AS SELECT文を使用して新しい表temp_hire_dateを作成します。 ADD_MONTHSをコールして元のhire_dateに23か月を加算します。
Command> SELECT FIRST 5 employee_id, last_name, hire_date FROM employees;
< 100, King, 1987-06-17 00:00:00 >
< 101, Kochhar, 1989-09-21 00:00:00 >
< 102, De Haan, 1993-01-13 00:00:00 >
< 103, Hunold, 1990-01-03 00:00:00 >
< 104, Ernst, 1991-05-21 00:00:00 >
5 rows found.
Command> CREATE TABLE temp_hire_date (employee_id, last_name,
hire_date) AS SELECT FIRST 5 employee_id, last_name,
ADD_MONTHS (hire_date, 23) FROM employees;
5 rows inserted.
Command> SELECT * FROM temp_hire_date;
< 100, King, 1989-05-17 00:00:00 >
< 101, Kochhar, 1991-08-21 00:00:00 >
< 102, De Haan, 1994-12-13 00:00:00 >
< 103, Hunold, 1991-12-03 00:00:00 >
< 104, Ernst, 1993-04-21 00:00:00 >
5 rows found.