2015-01-07 48 views
-1

我有一個DWH表,其中日期值存儲爲int.Now我想獲得所有記錄的一天活躍在一天的條件作爲start_date < = @ date和End_Date> @日期 近2年。運行SSIS包跳過無效日期

我已經使用了for循環和3個變量,其中硬編碼的FROM_DATE和TO_DATE分別爲20130101和20150107,3個變量VAR_DATE最初設置了TO_DATE並減1,直到達到FROM_DATE。

但達到20150101 ......這是開始插入值20150100,20150099等..

有沒有辦法在那裏我可以檢查是否正在使用的VAR_DATE柱後實際上是一個有效的日期(通過轉換和在旅途中比較),或使用結果集的任何可能的方式..

感謝, 維傑

+0

該代碼看到整數20150101,而不是日期'20150101',那麼爲什麼不應該去20150100?如果要將日期存儲爲整數,則應考慮使用日曆表,其中實際日期映射爲整數,然後使用這些映射值。 –

+1

如何將VAR_DATE轉換爲日期,減去一天然後再將其轉換爲整數? –

回答

0

使用腳本來的整數轉換成字符串。然後解析成一個日期對象,像這樣:

DateTime parsedDate; 
bool parseResult = DateTime.TryParseExact(dateValue, "yyyyMMdd", null, DateTimeStyles.None, out parsedDate) 

,如果它是一個有效的日期,然後將parseResult是真實的。