SSIS日期dataype转换

时间:2016-01-07 12:15:50

标签: sql-server date datetime ssis

我试图在我的SSIS包中创建两个date类型的变量。我将日期时间(因为没有机会采用直接日期类型)传递给包。两个日期变量正在使用此参数,它们是使用表达式创建的。

让参数为 Period 。这两个变量是 Var1 Var2

现在我正在尝试执行以下任务

Period的类型为DateTime。 VAR1的类型为Date。 VAR2必须是Date类型。

 Period = 2016-01-01 00.00.000
 VAR1 = (DT_DBDATE)(Period)
 VAR2 = DATEADD("dd" , -1,  DATEADD( "mm", 1, VAR1  ) )

当我尝试为VAR2分配此值时,我收到了数据类型错误。甚至尝试改变VAR1的dat类型。我也尝试了对象类型。

任何人都可以帮我解决这个问题。 VAR1和VAR2必须是DT_DATE类型。可以进行什么类型的转换/更改来完成它。

2 个答案:

答案 0 :(得分:0)

您要将转换后的期间分配给VAR1,但在period函数中继续使用dateadd

尝试这样

 Period = 2016-01-01 00.00.000
 VAR1 = (DT_DATE)(Period)
 VAR2 = (DT_DBDATE)DATEADD("dd" , -1,  DATEADD( "mm", 1, VAR1  ) )

答案 1 :(得分:0)

我还没有找到任何方法来转换SSIS中的日期。我经常去SUBSTRING。它可能不漂亮,但它很有效。

Period = 2016-01-01 00.00.000 VAR1 = (DT_DATE)(SUBSTRING(Period),1,10) VAR2 = (DT_DATE)(SUBSTRING(DATEADD("dd" , -1, DATEADD( "mm", 1, [period])),1,10))

可能需要在其中抛出强制转换(DT_WSTR,20)到子串。