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. データ型リファレンス

関数リファレンス

関数リファレンス

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'