2011-05-06 81 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)