检查Netezza中的日期值

时间:2013-08-12 17:57:17

标签: sql netezza

IN Netezza,我正在尝试检查日期值是否有效;像SQL服务器中的ISDATE函数。

我收到日期为2013年11月31日的日期无效,如何在Netezza中查看此日期是否有效,以便将其排除在我的流程之外。

谢谢

2 个答案:

答案 0 :(得分:0)

我不相信有内置的Netezza功能来检查日期是否有效。您可以编写LUA函数来执行此操作,或者您可以尝试加入“日期”查找表,如下所示:

创建一个包含两列的表:

DATE_VALUE date
DATE_STRING varchar(10)

将数据加载到此表中以获取有效日期(在您喜欢的工具中生成文件,excel,unix等)。每个DATE_VALUE(不同的“有效”格式)甚至可以有多行,如果你使用它的话就是这个检查。如果您从1900年到2100年填写,只要您的数据在该范围内,您就可以了。它也是一张小桌子,大约200年只有~7300排。如果需要,添加更多。哎呀,由于新西兰日期数据类型从AD1变为AD 9999,你可以完全填充它只有340万行(新西兰小)。

然后,要隔离包含无效日期的行,只需在DATE_STRING上使用JOINEXISTS / NOT EXISTS到此表。由于该表非常小,netezza可能会将其广播到所有SPU,从而使性能影响微不足道。

答案 1 :(得分:0)

Netezza Analytics Package 3.0(免费下载)附带了几个LUA函数,用于验证日期值:isdate()和todate()。安装/编译非常简单。