構文
用途
TO_DATE
は、CHAR
、VARCHAR2
、NCHAR
またはNVARCHAR2
データ型のchar
を、DATE
データ型の値に変換します。
注意: このファンクションは、データを別の日時データ型へは変換しません。他の日時変換の詳細は、「TO_TIMESTAMP」、「TO_TIMESTAMP_TZ」、「TO_DSINTERVAL」および「TO_YMINTERVAL」を参照してください。 |
fmt
は、char
の書式を指定する日時書式モデルです。fmt
を指定しない場合、char
はデフォルトの日付書式である必要があります。デフォルトの日付フォーマットは、NLS_TERRITORY
初期化パラメータによって暗黙に決まります。NLS_DATE_FORMAT
パラメータを使用して明示的に設定することもできます。fmt
がJ
(ユリウス日)の場合、char
は整数である必要があります。
注意: 次の項の例に示すとおり、TO_DATE では、常に書式マスク(fmt )を指定することをお薦めします。書式マスクを指定しないと、このファンクションは、char がNLS_TERRITORY またはNLS_DATE_FORMAT パラメータで指定されたものと同じ書式を使用している場合にのみ有効になります。さらに、依存性を回避するために明示的な書式マスクが指定されていない場合は、データベース間でファンクションが不安定になることがあります。 |
'nlsparam'
引数には、日付に変換されるテキスト文字列の言語を指定します。この引数は、次の書式で指定します。
'NLS_DATE_LANGUAGE = language'
引数char
にDATE
値を持つTO_DATE
ファンクションは使用しないでください。戻されるDATE
値は、fmt
またはデフォルトの日付書式によって、元のchar
とは異なる世紀の値を持つことがあります。
このファンクションは、CLOB
データを直接的にサポートしていません。ただし、暗黙的なデータ変換を使用してCLOB
を引数として渡すことはできます。
例
次の例では、文字列を日付に変換します。
SELECT TO_DATE( 'January 15, 1989, 11:00 A.M.', 'Month dd, YYYY, HH:MI A.M.', 'NLS_DATE_LANGUAGE = American') FROM DUAL; TO_DATE(' --------- 15-JAN-89
戻された値は、NLS_TERRITORY
パラメータが'AMERICA
'に設定されている場合は、デフォルトの日付書式を反映します。異なるNLS_TERRITORY
の値が設定されている場合は、異なるデフォルトの日付書式となります。
ALTER SESSION SET NLS_TERRITORY = 'KOREAN'; SELECT TO_DATE( 'January 15, 1989, 11:00 A.M.', 'Month dd, YYYY, HH:MI A.M.', 'NLS_DATE_LANGUAGE = American') FROM DUAL; TO_DATE( -------- 89/01/15