データ・ディクショナリ・ビューの使用および異なるタイムゾーンでのデータ管理50 / 50 問

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

SELECT DATE '2026-01-15' + INTERVAL '1-2' YEAR TO MONTH AS result FROM dual;
A2027-03-15✓
B2026-03-15
C2027-01-17
Dエラーになる
正解:A解説

INTERVAL '1-2' YEAR TO MONTHは「1年2か月」を表すINTERVALリテラルです。2026-01-15に1年2か月を加算するため、2027-03-15が返されます。

SELECT DATE '2026-01-15' + INTERVAL '1-2' YEAR TO MONTH AS result FROM dual;

RESULT
-----------
2027-03-15

INTERVAL型の種類

データ型表す期間リテラルの例
INTERVAL YEAR TO MONTH年と月INTERVAL '1-2' YEAR TO MONTH(1年2か月)
INTERVAL DAY TO SECOND日、時、分、秒INTERVAL '3 12:00:00' DAY TO SECOND(3日と12時間)

ADD_MONTHSとの違い
INTERVALで月を加算した結果、その月に存在しない日付になる場合は、月末日に補正されずエラーになります。

SELECT DATE '2026-01-31' + INTERVAL '1' MONTH FROM dual;
-- ORA-01839エラーになる

SELECT ADD_MONTHS(DATE '2026-01-31', 1) FROM dual;
-- 2026-02-28(月末日に補正される)

前後の問題