2017-10-16 29 views
0

無効な日付のフィールドを一覧表示するとします。現在、私は日付の有効性を確認するために以下の条件でのみ出てきました。DataStage-無効な日付のフィールドを一覧表示する

If 
IsValid('%dd-%mm-%yyyy',ln_source_1.A_Date) or 
IsValid('%dd-%mm-%yyyy',ln_source_1.B_Date) or 
IsValid('%dd-%mm-%yyyy',ln_source_1.C_Date) 
then 1 else 0 

DATE TABLE

ID | A_Date | B_DATE | C_DATE

001 | 16-10-2017 | 16-31-2017 | 16-10-017

002 | 61-10-2017 | 01-01-2017 | 16-10-2017

上記の例に基づいて、B_DateとC_Dateは無効です。それで、以下のような無効な日付をリストアップすることは可能ですか?

ステータス|無効な日付|

001 | B_Date、C_Date |

002 | A_Date |

注:私はその有効性を確認するために、多くの日付フィールドを持っており、それのいくつかは

おかげ

答えて

0

nullにすることができ、すべてのIsValid関数の第一は、このように呼ばれる必要がある:

IsValid("date", ln_source_1.A_Date, "%dd-%mm-%yyyy") 

2番目の列には日付が表示されていますが、リストに表示される列名は結果の例が不明です。 「多くの日付フィールズ」の数に応じて、連結がオプションになる場合があります。あなたはStagevariable

svInvalid =>のために行くことができ

は ""

を "

svValid =>に設定し、" そして、このようなチェックを行う(すべての入力と外野を仮定し、それを設定します出力列のVARCHARデータ・タイプ)がある

IF IsValid("date", ln_source_1.A_Date, "%dd-%mm-%yyyy") 
THEN svValid : "A_DATE, " 
ELSE svInvalid : "A_DATE, " 

新しい無効な列に新しい有効な列とsvInavalidにsvValidを割り当てます。

+0

ええ、私はどの列に無効な日付があるかを知りたいので、 '日付'に列名が必要です。 – Kiki

+0

あなたは私の提案を試みましたか? – MichaelTiefenbacher

関連する問題