我是SSIS的新手,并且在使用ssis向我的表中插入日期时出现问题。 这就是我想要做的事情:
select cast (cast(YEAR(getdate()) as nvarchar) + '-' + cast(@IndexmonthS as nvarchar) + '-' + cast(@day as nvarchar) as date) as startdate,
cast (cast(YEAR(getdate()) as nvarchar) + '-' + cast(@IndexmonthE as nvarchar) + '-' + cast(@day as nvarchar) as date) as enddate
当我将它复制到ssis中的推荐文本并运行包时出现错误 -
“插入到...时出错无法在类型”DT_DBDATE“之间进行转换 “DT_14” ...“
目标表有一列,其类型是日期。 请帮忙。
答案 0 :(得分:0)
首先,如果没有长度参数,请不要使用varchar()
或nvarchar()
。在SQL Server中,默认长度因上下文而异,只是一个等待发生的错误。
在SQL Server 2012中,您可以使用datefromparts()
。假设值是数值:
select datefromparts(year(getdate()), @IndexmonthS, @day) as startdate,
即使在早期版本中,您也应该使用datename()
而不是datepart()
:
select cast(datename(year, getdate()) + '-' + cast(@IndexmonthS as varchar(255)) + '-' cast(@day as varchar(255)) as date)