DataStage-To 列出具有无效日期的字段

DataStage-To list Fields that have Invalid Date

我想列出具有无效日期的字段。目前我只提出了以下条件来检查日期有效性。

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

日期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 无效。那么,是否可以像下面这样列出无效日期以及如何列出?

状态|Invalid_Date|

001|B_Date,C_Date|

002|A_Date|

注意:我有很多日期字段来检查它的有效性,其中一些可以为空

谢谢

首先需要像这样调用 IsValid 函数:

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

您的结果示例不清楚,因为您的第二列显示的是日期,但您列出的是列名。 连接可能是一个选项,具体取决于 "many date fiels" 的数量。

你可以选择 Stagevariable

svInvalid => 将其设置为“”

svValid => 将其设置为“”

然后像这样检查(假设所有输入和外场都是 Varchar 数据类型)

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

在输出列中,将 svValid 分配给新的 VALID 列,将 svInavalid 分配给新的 INVALID 列。