Sql 在DB2中转换之前验证日期值
在DB2表中,日期存储为压缩字段。我可以将这些字段转换为有效的DB2日期字段,但有时源代码包含无效的日期值,如20130431—仅在4月份的30天。我知道,当提供给date函数的date无效时,返回的SQLCODE是Sql 在DB2中转换之前验证日期值,sql,db2,Sql,Db2,在DB2表中,日期存储为压缩字段。我可以将这些字段转换为有效的DB2日期字段,但有时源代码包含无效的日期值,如20130431—仅在4月份的30天。我知道,当提供给date函数的date无效时,返回的SQLCODE是 -我是否必须编写一个函数来检查SQLCODE以进行验证,还是可以在CASE语句中执行某些操作 我可以想象一个非常丑陋的嵌套/复合CASE结构的前几层,它将数值转换为CHAR,并可能使用LAST_DAY()和年和月子字符串来获得一个日数,以与低阶字符进行比较,检查月份数字以确保范围为
-我是否必须编写一个函数来检查SQLCODE以进行验证,还是可以在CASE语句中执行某些操作 我可以想象一个非常丑陋的嵌套/复合
CASE
结构的前几层,它将数值转换为CHAR
,并可能使用LAST_DAY()
和年和月子字符串来获得一个日数,以与低阶字符进行比较,检查月份数字以确保范围为“01”至“12”后。当深度达到这一程度时,UDF将证明其价值。问题的出现主要是因为SQL首先不允许将无效日期写入date
列;它不希望读取无效值。我确信您是正确的,但是,正如我所说的,这些值定义为压缩十进制,而不是日期。我在下面放置了一个可能类似的函数。可能很容易调整十进制值的结构