SSIS使用派生列来引用同一个表中的列

我正在尝试将xls电子表格导入到表格中,并且其中一个列需要从同一个表中的不同列导出。 我想在导入阶段这样做,而不是在导入后创build一个SQL任务。 在SSIS中创buildexpression式时,我感到非常可怕,所以这可能是一件容易的事情 – 但是我不能正确的做到。

DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,columndata)+1,0)) 

这是我正在尝试使用的expression。

你需要以下内容:

 DATEADD("S",-1,DATEADD("M",DATEDIFF("M", (DT_DATE) 0,DATEADD("D",[dataDate],(DT_DATE)-2))+1,(DT_DATE)0) ) 

1)你需要使用“围绕你的date部分。

2)您需要将您的0date转换为明确的datetypes。

这个expression式使用列dateserial数字[dataDate]将该天数添加到date-2

 DATEADD("D",[dataDate],(DT_DATE)-2) 

(显然,sql day 0和excel day 0在我的版本(sql2008r2和excel 2007)上有两天的不同),并查找从第0天到该date的月数,

 DATEDIFF("M", (DT_DATE) 0,DATEADD("D",[dataDate],(DT_DATE)-2)) 

然后将这个月数加1,并把它加回到0

 DATEADD("M",DATEDIFF("M", (DT_DATE) 0,DATEADD("D",[dataDate],(DT_DATE)-2))+1,(DT_DATE)0) 

(以获得列date值之后的下个月的开始),然后从date中减去1秒,以date时间格式获取列date值的月份的最后一秒。

 DATEADD("S",-1,DATEADD("M",DATEDIFF("M", (DT_DATE) 0,DATEADD("D",[dataDate],(DT_DATE)-2))+1,(DT_DATE)0) )