Hi, I'm Ask INFA!
What would you like to know?
ASK INFAPreview
Please to access Ask INFA.

目次

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' )