文字列を年月期間型に変換、数値を期間型に変換
年月期間型 = INTERVAL YEAR TO MONTH ⇔ 日〜秒期間型に変換する関数
- TO_YMINTERVAL ( string )
- TO_YMINTERVAL ( string [ DEFAULT ret_val ON CONVERSION ERROR ] )
- NUMTOYMINTERVAL ( number , ym_interval_unit ) Oracle 8i
return [ INTERVAL YEAR TO MONTH ]
string | 期間型に変換できる一定の文字列式 |
ret_val | 変換エラー時のデフォルト値 | |
number | 年、月、日、時、分、または、秒の数値式(小数を含んでもよい) |
ym_interval_unit | 期間単位指定 における 年、または、月 |
- 期間書式に従って記述された文字式 string を年月期間型、または、日〜秒期間型に変換した値
- 期間単位 xx_interval_unit を1単位として数えた number 分の期間型の値
期間の要素
期間式の要素 | ym interval unit 引数 |
年 | YEAR |
月 | MONTH |
TO_YMINTERVAL 関数の内容
年と月の 期間リテラル の書式 'years-months' 形式で記述された文字列を 'INTERVAL YEAR TO MONTH' 期間型に変換する。
年の要素 years は 9桁、months は 0 〜 11 までの月数を整数であらわす。
TO_YMINTERVAL 使用例
引数文字列を 'INTERVAL YEAR TO MONTH' 型に変換する。年月を加減算する場合に使う。
SELECT SYSDATE + TO_YMINTERVAL('01-00') FROM DUAL ; 1年後を取得。
└ SELECT SYSDATE + INTERVAL '1' YEAR FROM DUAL ;
NUMTOYMINTERVAL 関数の内容
年、または、月の数 number を 'INTERVAL YEAR TO MONTH' 期間型 に変換する。 年数か月数かは期間単位 ym_interval_unit の指定した内容による。
number には小数を含めることができるが 'INTERVAL YEAR TO MONTH' の精度を下回る日単位におよぶ場合には、その部分は切り捨てされる。
NUMTOYMINTERVAL 使用例
小数点の扱いは日にち部分が切り捨て処理される。
NUMTOYMINTERVAL(0.1, 'YEAR') ⇒ 0.1 年 ⇒ 1.2 ヵ月 ⇒ 1.0 ヵ月
NUMTOYMINTERVAL(0.4, 'YEAR') ⇒ 0.4 年 ⇒ 4.8 ヵ月 ⇒ 4.0 ヵ月
NUMTOYMINTERVAL(0.5, 'YEAR') ⇒ 0.5 年 ⇒ 6.0 ヵ月 ⇒ 6.0 ヵ月
SQL 関数 - TO_YMINTERVAL,NUMTOYMINTERVAL関連