我试图在我的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类型。可以进行什么类型的转换/更改来完成它。
答案 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)到子串。