関数の使用20 / 50 問

NLS_DATE_FORMATが'YYYY-MM-DD'に設定されているセッションで、以下のSQL文を実行しました。どのような結果が返されますか。

SELECT ADD_MONTHS(DATE '2026-01-31', 1) AS next_month FROM dual;
A2026-02-28✓
B2026-02-31
C2026-03-03
Dエラーになる
正解:A解説

ADD_MONTHS(日付, N)は、日付にNか月を加算するファンクションです。
加算後の月に同じ日が存在しない場合や、元の日付が月末日の場合は、加算後の月の月末日を返します。2026年2月は28日までのため、2026-02-28が返されます。

SELECT ADD_MONTHS(DATE '2026-01-31', 1) AS next_month FROM dual;

NEXT_MONTH
-----------
2026-02-28

元の日付が月末日の場合は、結果も月末日になる点に注意してください。

SELECT ADD_MONTHS(DATE '2026-02-28', 1) AS next_month FROM dual;

NEXT_MONTH
-----------
2026-03-31

主な日付ファンクション

ファンクション戻り値
ADD_MONTHS(D, N)DにNか月を加算した日付
MONTHS_BETWEEN(D1, D2)D1とD2の間の月数(数値)
LAST_DAY(D)Dを含む月の月末日
NEXT_DAY(D, '曜日')Dより後で、指定した曜日になる最初の日付

なお、DATE '2026-01-31' + 31のように日数を加算した場合は、単純に31日後の2026-03-03になります。

前後の問題