datastage Transformer中使用IsValidDate函数会引发警告

问题

使用IsValid函数检查日期是否有效时,如果日期无效,该函数将引发警告。在DataStage 7版本和8.1版本中,没有警告,但在v8.5及更高版本中,出现警告。
示例:

场景1:
    
    StageVar = 20141231 
    If IsValidDate("2014-12-31")
    Then "Valid"
    else "InValid"
    此时无日志警告
场景2:
    StageVar = 20143112 
    If IsValidDate("2014-31-12")
    Then "Valid"
    else "InValid"
    此时将产生警告信息"Conversion error calling conversion routine date_from_ustring data may have been lost"
    
场景3:
    StageVar = 20143112 
    If IsValidDate(StringToDate( "2014-31-12" ,"%yyyy-%mm-%dd")) 
    Then "Valid"
    else "InValid"
    此时将产生警告信息" APT_CombinedOperatorController,1: Conversion error calling conversion routine date_from_string data may have been lost"

原因
使用 IsValidDate或IsValid("date",StringToDate(string,"%mm/%dd/%yyyy") )会出现警告消息,因为它试图在实际检查之前将无效的字符串值转换为日期。

解决问题
要解决此问题,请使用以下函数:
IsValid ("date", String1[1,4]:"-":String1[5,2]:"-":String1[7,2])

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值