ssis派生组件中的isdate函数

时间:2009-08-06 01:09:39

标签: sql-server tsql ssis

在加载到目标dtabase之前,有没有办法在从Sourcefile中提取后检查SSIS包派生列表达式中的Date(如TSQL中的isDate函数)列?

由于

5 个答案:

答案 0 :(得分:2)

没有内置函数,但您可以运行脚本任务并使用vb.net代码检查列是否为日期并按照您的意愿对其进行操作...

答案 1 :(得分:2)

我有类似的问题。我在文本文件中有一个日期/时间,但该字段在日期和时间之间有一个短划线。我创建了一个派生列来在短划线上进行替换:

REPLACE([TimeField], "- ", "")

然后,我添加了一个转换列,将字段转换为日期。我选择忽略错误。然后我添加了另一个派生列来检查转换后的字段是否为NULL,表明它无法转换该值。如果是的话,我把它设置为当前日期。

答案 2 :(得分:1)

您可以插入一个数据转换任务。然后根据需要重定向行,要么完全导致导入失败,要么重新导航不起作用的行。

或者您可以尝试使用条件拆分,然后将字段转换为日期数据类型,然后沿另一条路径发送失败(删除记录或将字段归零将是常见操作。)

答案 3 :(得分:1)

另见http://www.sqlis.com/sqlis/post/Expression-Date-Functions.aspx> “IsDate解决方法”是一种可以适应的技术

答案 4 :(得分:0)

您可以使用如下条件语句检查变量是否有日期:

testDateVariable?true:false

例如,如果date > 2则为true(并根据需要设置日期或格式化日期)。如果是false,则输入null(将true替换为日期格式,将false替换为null)。

这一切都在SSIS的一个列中。