运行SSIS包跳过无效日期

时间:2015-01-07 11:39:26

标签: sql-server ssis

我有一个DWH表,其日期值存储为int。现在我想要获取一天中所有记录的所有记录,其中条件为start_date< = @ date和End_Date> @DATE 差不多接近2年。

我使用了for循环和3个变量,其中硬编码的FROM_DATE和TO_DATE为20130101和20150107,3变量VAR_DATE最初设置为TO_DATE并减少1直到它达到FROM_DATE。

但是在达到20150101之后......它开始插入20150100,20150099的值等等。

有没有办法我可以检查所使用的VAR_DATE列是否实际上是一个有效的日期(通过转换和比较)或任何可能的方式使用结果集..

谢谢, 维杰

1 个答案:

答案 0 :(得分:0)

使用脚本将整数转换为字符串。然后将其解析为日期对象,如下所示:

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

如果parseResult是有效日期,那么它将成立。