目次

Search

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

関数リファレンス

関数リファレンス

IS_DATE

IS_DATE

文字列値が正しい日付であるかどうかを返します。
正しい日付とは、デフォルトの日付形式(MM/DD/YYYY HH24:MI:SS)になっている文字列を意味します。テストしたい文字列がデフォルトの日付形式でない場合は、TO_DATEフォーマット文字列を使用して日付の形式を指定します。IS_DATEに渡された文字列が指定されたフォーマット文字列に一致しない場合には、関数はFALSE(0)を返します。文字列がフォーマット文字列に一致する場合には、関数はTRUE(1)を返します。
IS_DATEは、文字列を評価して整数値を返します。
IS_DATE式のターゲットカラムは、Stringデータ型またはNumericデータ型でなければなりません。
IS_DATEを使用して、フラットファイル内のデータをテストまたはフィルタリングしてから、ターゲットに書き込むこともできます。
YYフォーマットの文字列の代わりに、IS_DATEを含むRRフォーマットの文字列を使用します。ほとんどの場合、RRとYYのフォーマット文字列は同じ値を返しますが、場合により、YYが誤った結果を返すことがあります。たとえば、式IS_DATE(‘02/29/00’, ‘YY’)は内部でIS_DATE(02/29/1900 00:00:00)として計算され、FALSEを返します。ただし、
データ統合
はIS_DATE(‘02/29/00’, ‘RR’)の式をIS_DATE(02/29/2000 00:00:00)と計算し、TRUEを返します。前者の場合、1900年はうるう年ではないので、2月29日はありません。
IS_DATEでは、TO_DATEと同じフォーマット文字列を使用します。

構文

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

戻り値

行が正しい日付の場合は、TRUE(1)。
行が正しい日付でない場合は、FALSE(0)。
式の中にNULLの値がある場合、またはフォーマット文字列がNULLである場合は、NULL。
フォーマット文字列は、日付区切り文字を含め、IS_DATE文字列の形式と一致しなければなりません。一致しない場合、
データ統合
は不正確な値を返すか行をスキップする可能性があります。

次の式は、INVOICE_DATEカラムの値が正しい日付であるかどうかを確認します。
IS_DATE( INVOICE_DATE )
この式は、以下のようなデータを返します。
INVOICE_DATE
RETURN VALUE
NULL
NULL
'180'
0 (FALSE)
'04/01/98'
0 (FALSE)
'04/01/1998 00:12:15'
1 (TRUE)
'02/31/1998 12:13:55'
0 (FALSE)   (
February does not have 31 days
)
'John Smith'
0 (FALSE)
次のIS_DATE式では、フォーマット文字列‘YYYY/MM/DD’が指定されています。
IS_DATE( INVOICE_DATE, 'YYYY/MM/DD' )
文字列がこの形式に一致しない場合、IS_DATEはFALSEを返します。
INVOICE_DATE
RETURN VALUE
NULL
NULL
'180'
0 (FALSE)
'04/01/98'
0 (FALSE)
'1998/01/12'
1 (TRUE)
'1998/11/21 00:00:13'
0 (FALSE)
'1998/02/31'
0 (FALSE)   (
February does not have 31 days
)
'John Smith'
0 (FALSE)
次の例では、IS_DATEを使ってデータをテストしてから、TO_DATEを使って文字列を日付に変換する方法を示しています。この式は、INVOICE_DATEカラムの値を検査して、正しい日付をそれぞれ日付値に変換します。値が正しい日付ではない場合、
データ統合
はERRORを返し、その行をスキップします。
この例はDate/Time値を返します。そのため、式のターゲットカラムはDate/Time型でなければなりません。
IIF( IS_DATE ( INVOICE_DATE, 'YYYY/MM/DD' ), TO_DATE( INVOICE_DATE ), ERROR('Not a valid date' ) )
INVOICE_DATE
RETURN VALUE
NULL
NULL
'180'
'Not a valid date'
'04/01/98'
'Not a valid date'
'1998/01/12'
1998/01/12
'1998/11/21 00:00:13'
'Not a valid date'
'1998/02/31'
'Not a valid date'
'John Smith'
'Not a valid date'