2011-05-06 45 views
1

我想验证SSIS中的日期。SSIS 2008 - 如何验证日期

如果我使用T-SQL,我会使用ISDATE。

什么是SSIS等价物?

+0

重复的问题:http://support.microsoft.com/kb/1236505/isdate-function-in-ssis-derived-component – Avitus 2011-05-06 02:43:13

+0

我想知道是否有可能做这样的事情: Day(@mydate)> 1 && Day(@mydate)<= 31 && Month(@mydate)> = 1 && Month(@mydate)<= 12 && Year(@mydate)> 2000 && Year(@mydate)< 2012我知道,这些函数失败时返回NULL,我相信他们承担美国格式的日期。 – 2011-05-06 03:05:44

回答

0

SSIS没有内置的日期验证方法。有些人已经编写了变通办法,但他们往往对所有特殊情况都有问题。你最好的选择是编写脚本,或者如果可能的话,在你获得数据之前在SQL中进行验证(我知道这可能是不可能的,因为你问的只是一个想法)。你甚至可以创建一个接受“日期”参数并在SQL中验证它的存储过程。这样SSIS就可以在不创建复杂脚本的情况下使用它。

0

使用以下正则表达式脚本来验证ssis脚本组件中的日期。

这下面脚本验证日期以下格式(月/日/年)

^([1][012]|[0]?[1-9])[/]([3][01]|[12]\d|[0]?[1-9])[/]([1-8][0-9][0-9][0-9]|9000)$ 

^([1][012]|[0]?[1-9])[/]([3][01]|[12]\d|[0]?[1-9])[/]([1-8][0-9][0-9][0-9]|9000)\s([01]?[0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9])$ 

这两个脚本日期允许的(MM/DD/YYYY HH::毫米SS)(01/01/1000至12/31/9000)