TO_DATEファンクションは、書式が設定されたTEXTまたはNTEXT式を、DATETIME値に変換するファンクションです。
パラメータ
変換する日付を含むテキスト式。式には、TEXTまたはNTEXTデータ型を使用できます。NTEXT値を日付として解釈できない場合は、NTEXTからの変換は不適切な結果となります。
日時書式テンプレートを指定するテキスト式。このテンプレートでテキストからDATETIMEへの変換方法を指定します。日時書式テンプレートの詳細は、表9-4「日時の書式要素」を参照してください。
現在セッションで有効な設定を一時的に上書きするOLAPオプション(NLS_DATE_LANGUAGEなど)およびその新しい設定。通常、このオプションはtext-expの言語がセッションの言語と異なる場合にその言語を指定します。例8-140「デフォルト言語および日付書式の指定」を参照してください。
他のオプションを設定するオプションは指定しないでください。たとえば、NLS_LANGUAGEやNLS_TERRITORYは設定せず、かわりにNLS_DATE_LANGUAGEを設定してください。TO_DATEは、文の実行中にのみ新しい値を保持できるように、指定したオプションの現行の設定を保存およびリストアしますが、そのオプションの変更結果を保存およびリストアできません。たとえば、NLS_TERRITORYは、NLS_DATE_FORMAT、NLS_NUMERIC_CHARACTERS、NLS_CURRENCY、NLS_CALENDARなどの値およびその他のオプションを制御します。TO_DATEに対するコールでNLS_TERRITORYの値を変更した場合、すべてのオプションはそれらの領域に適したデフォルト値に2回リセットされます(1回目はNLS_TERRITORYがTO_DATE文の実行中にその新しい値に設定されたとき、2回目はNLS_TERRITORYの保存された値がリストアされたとき)。
使用上の注意
大文字の使用
書式要素において単語、略称またはローマ数字で大文字が使用されると、対応する大文字が戻り値に生成されます。たとえば、書式要素DAY
によりMONDAY
が、Day
によりMonday
が、day
によりmonday
が生成されます。
認識されない日付
TO_DATEがfmtを使用して、有効なDATE値で値を構成できない場合、エラーが返されます。たとえば、fmtが句読記号文字を示す場合で、text-expに英数字が含まれる場合、エラーが発生します。
例
例8-139 テキスト値のDATE値への変換
次の文は、January
15,
2002,
11:00
A.M.
を、デフォルトの日付書式である15JAN02
に変換し、その値をbonusdate
という名前のDATE変数に格納します。
bonusdate = TO_DATE('January 15, 2002, 11:00 A.M.', - 'Month dd, YYYY, HH:MI A.M.')
例8-140 デフォルト言語および日付書式の指定
次の文では、デフォルトの言語をスペイン語に設定し、新しい日付書式を指定します。NLS_DATE_LANGUAGEオプションをTO_DATEファンクションで使用して、米語の月の名前を変換できます。
NLS_DATE_FORMAT = 'Day: Month dd, yyyy HH:MI:SS am' NLS_DATE_LANGUAGE = 'spanish' SHOW TO_DATE('November 15, 2001', 'Month dd, yyyy', - NLS_DATE_LANGUAGE 'american')
日付が米語からスペイン語に変換され、新しい日付書式で表示されます。
Jueves : Noviembre 15, 2001 12:00:00 AM