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.