目次

Search

  1. はじめに
  2. 関数リファレンス
  3. 定数
  4. 演算子
  5. 日付
  6. 関数
  7. システム変数
  8. データ型リファレンス

関数リファレンス

関数リファレンス

TO_DATE

TO_DATE

文字列をそれと同じ形式で日付データ型に変換します。元の文字列の形式を指定するには、TO_DATEフォーマット文字列を使用します。
TO_DATE式の場合、ターゲットカラムはdate/timeでなければなりません。
TO_DATEで2桁の年を変換する場合には、RRまたはYYのフォーマット文字列を使ってください。YYYYフォーマット文字列を使用してはなりません。

構文

TO_DATE(
string
[,
format
] )
引数
必須/
オプション
説明
string
必須
文字列データ型であること。日付に変換したい値を渡します。有効な式を必要に応じて入力できます。
format
オプション
正しいTO_DATEフォーマット文字列を入力します。フォーマット文字列は、
string
引数の各部分と一致しなければなりません。例えば、‘Mar 15 1998 12:43:10AM’の文字列を渡す場合、フォーマット文字列‘MON DD YYYY HH12:MI:SSAM’を使用する必要があります。フォーマット文字列を省略する場合は、文字列値がデフォルトの日付形式(MM/DD/YYYY HH24:MI:SS)になっていなければなりません。
TO_DATEフォーマット文字列の詳細については、TO_DATEおよびIS_DATEフォーマット文字列を参照してください。

戻り値

日付。
TO_DATEは常に日付と時刻を返します。時刻値を含まない文字列を渡すと、返される日付の時刻は常に00:00:00になります。この関数の結果は、Dateデータ型を持つ任意のターゲット列にマッピングできます。
関数にNULL値を渡した場合はNULLです。
フォーマット文字列は、日付区切り文字を含め、TO_DATE文字列の形式と一致しなければなりません。一致しない場合、
データ統合
は不正確な値を返すか行をスキップする可能性があります。

次の式は、DATE_PROMISEDカラムの文字列の日付値を返します。TO_DATEは常に日付と時刻を返します。時刻値を含まない文字列を渡すと、返される日付の時刻は常に00:00:00になります。20世紀にセッションを実行した場合、年の最初の2桁は19になります。
データ統合
を実行しているコンピュータの現在の年は1998です。
TO_DATE( DATE_PROMISED, 'MM/DD/YY' )
DATE_PROMISED
RETURN VALUE
'01/22/98'
Jan 22 1998 00:00:00
'05/03/98'
May 3 1998 00:00:00
'11/10/98'
Nov 10 1998 00:00:00
'10/19/98'
Oct 19 1998 00:00:00
NULL
NULL
次の式は、DATE_PROMISEDカラムの文字列の日付と時間の値を返します。時間の値を持たない文字列が渡された場合、
データ統合
は、その行をエラー行ファイルに書き込みます。20世紀にセッションを実行した場合、年の最初の2桁は19になります。
データ統合
を実行しているコンピュータの現在の年は1998です。
TO_DATE( DATE_PROMISED, 'MON DD YYYY HH12:MI:SSAM' )
DATE_PROMISED
RETURN VALUE
'Jan 22 1998 02:14:56PM'
Jan 22 1998 02:14:56PM
'Mar 15 1998 11:11:11AM'
Mar 15 1998 11:11:11AM
'Jun 18 1998 10:10:10PM'
Jun 18 1998 10:10:10PM
'October 19 1998'
None.
データ統合
writes the row into the error rows file.
NULL
NULL
次の式は、SHIP_DATE_MJD_STRINGカラムの文字列をデフォルト日付形式の日付値に変換します。
TO_DATE (SHIP_DATE_MJD_STR, 'J')
SHIP_DATE_MJD_STR
RETURN_VALUE
'2451544'
Dec 31 1999 00:00:00
'2415021'
Jan 1 1900 00:00:00
Jフォーマット文字列には日付の時間部分が含まれないため、戻り値では時間が00:00:00に設定されています。
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
TO_DATE( DATE_STR, 'MM/DD/RR')
DATE_STR
RETURN VALUE
'04/01/98'
04/01/1998 00:00:00
'08/17/05'
08/17/2005 00:00:00
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
TO_DATE( DATE_STR, 'MM/DD/YY')
DATE_STR
RETURN VALUE
'04/01/98'
04/01/1998 00:00:00
'08/17/05'
08/17/1905 00:00:00
2番目の行については、RRは2005年を返しますが、YYは 1905年を返します。
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
TO_DATE( DATE_STR, 'MM/DD/Y')
DATE_STR
RETURN VALUE
'04/01/8'
04/01/1998 00:00:00
'08/17/5'
08/17/1995 00:00:00
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
TO_DATE( DATE_STR, 'MM/DD/YYY')
DATE_STR
RETURN VALUE
'04/01/998'
04/01/1998 00:00:00
'08/17/995'
08/17/1995 00:00:00
次の式は、深夜からの通算秒を含む文字を日付値に変換します。
TO_DATE( DATE_STR, 'MM/DD/YYYY SSSSS')
DATE_STR
RETURN_VALUE
'12/31/1999 3783'
12/31/1999 01:02:03
'09/15/1996 86399'
09/15/1996 23:59:59
ターゲットで複数の異なる日付形式を使用できる場合は、DECODE関数でTO_DATEとIS_DATEを使用して、使用可能な形式をテストできます。以下に例を示します。
DECODE( TRUE,  --test first format    IS_DATE( CLOSE_DATE,'MM/DD/YYYY HH24:MI:SS' ),    --if true, convert to date       TO_DATE( CLOSE_DATE,'MM/DD/YYYY HH24:MI:SS' ),  --test second format; if true, convert to date    IS_DATE( CLOSE_DATE,'MM/DD/YYYY'), TO_DATE( CLOSE_DATE,'MM/DD/YYYY' ),  --test third format; if true, convert to date    IS_DATE( CLOSE_DATE,'MON DD YYYY'), TO_DATE( CLOSE_DATE,'MON DD YYYY'),  --if none of the above    ERROR( 'NOT A VALID DATE') )
TO_CHARとTO_DATEを組み合わせて次のような関数を記述すれば、月の数値を対応する月の文字列に変換することができます。
TO_CHAR( TO_DATE( numeric_month, 'MM' ), 'MONTH' )