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) )