説明
この関数は、CHAR、VARCHAR2、NCHAR、または NVARCHAR2 データ型の文字列を INTERVAL YEAR TO MONTH データ型の値に変換します。これにより、日付時刻値に対する加算や減算が可能になります。
構文
/*SQL 日付形式*/
TO_YMINTERVAL([+|-] years-months)
/*ISO 日付形式*/
TO_YMINTERVAL([-]P[ years Y][months M][days D][T[hours H][minutes M][seconds[.fracsecs]S]])
パラメータの説明
パラメータ |
説明 |
|---|---|
| [+|-] years-months | このパラメータ形式に合致する CHAR、VARCHAR2、NCHAR、または NVARCHAR2 データ型の文字列。
|
| [-]P[ years Y][months M][days D][T[hours H][minutes M][seconds[.fracsecs]S]] | このパラメータ形式に合致する CHAR、VARCHAR2、NCHAR、または NVARCHAR2 データ型の文字列。frac_secs は秒の小数部を表し、整数値で、取り得る範囲は [0,999999999] です。注意 値にスペースを含めることはできません。 |
戻り値の型
INTERVAL YEAR TO MONTH データ型を返します。
例
現在時刻から 1 年 2 ヶ月後の日付時刻を返します。
obclient> SELECT SYSDATE,SYSDATE+TO_YMINTERVAL('01-02') FROM DUAL;
+-----------+--------------------------------+
| SYSDATE | SYSDATE+TO_YMINTERVAL('01-02') |
+-----------+--------------------------------+
| 18-NOV-21 | 18-JAN-23 |
+-----------+--------------------------------+
1 row in set
時間間隔として2年6ヶ月10日4時間30分15秒を指定するには、次の例を使用できます:
obclient> SELECT TO_YMINTERVAL('P2Y6M10DT4H30M15S') FROM dual;
+------------------------------------+
| TO_YMINTERVAL('P2Y6M10DT4H30M15S') |
+------------------------------------+
| +000000002-06 |
+------------------------------------+
1 row in set
以下は負の時間間隔の例です。3年1ヶ月5日を引く必要がある場合、次の例を使用できます:
obclient> SELECT TO_YMINTERVAL('-P3Y1M5D') FROM dual;
+---------------------------+
| TO_YMINTERVAL('-P3Y1M5D') |
+---------------------------+
| -000000003-01 |
+---------------------------+
1 row in set