構文

sql_format::=

ds_iso_format::=

|
注意: 以前のリリースでは、TO_DSINTERVALファンクションはオプションのnlsparam句を受け入れました。この句は下位互換性のために現在も受け入れられますが、効果はありません。 |
用途
TO_DSINTERVALは、CHAR、VARCHAR2、NCHARまたはNVARCHAR2データ型の文字列を、INTERVAL DAY TO SECOND型に変換します。
TO_DSINTERVALは、2つの書式のいずれかの引数を取ります。
SQL規格(ISO/IEC 9075:2003)に準拠したSQL期間書式(ISO/IEC 9075:2003)
ISO 8601:2004規格に準拠したISO存続期間書式
SQL書式では、daysは0(ゼロ)から999999999の整数、hoursは0(ゼロ)から23の整数、minutesとsecondsは0(ゼロ)から59の整数になります。frac_secsは秒の小数部であり、.0から.999999999になります。日付と時間は1つ以上の空白で区切ります。これ以外に、書式要素の間に空白を使用できます。
ISO書式では、days、hours、minutesおよびsecondsは、0(ゼロ)から999999999の整数になります。frac_secsは秒の小数部であり、.0から.999999999になります。値には空白を使用できません。Tを指定する場合は、hours、minutesまたはsecondsの値を少なくとも1つ指定する必要があります。
例
次の例では、SQL書式を使用して、2002年11月1日から100日以上勤務している従業員をhr.employees表から検索します。
SELECT employee_id, last_name FROM employees
WHERE hire_date + TO_DSINTERVAL('100 00:00:00')
<= DATE '2002-11-01'
ORDER BY employee_id;
EMPLOYEE_ID LAST_NAME
----------- ---------------
102 De Haan
203 Mavris
204 Baer
205 Higgins
206 Giet
次の例では、ISO書式を使用して、2009年の始めから100日と5時間後のタイムスタンプを表示します。
SELECT TO_CHAR(TIMESTAMP '2009-01-01 00:00:00' + TO_DSINTERVAL('P100DT05H'),
'YYYY-MM-DD HH24:MI:SS') "Time Stamp"
FROM DUAL;
Time Stamp
-------------------
2009-04-11 05:00:00