我在数据库表中有一个日期列保存为“2014-12-17 15:16:00”。我必须将此日期和其他几个字段一起导入CSV文件,格式为“2014年12月17日” 。 有没有办法在SSIS中轻松地将日期转换为这种格式?
通过SQL,我可以如下所示,但它没有返回完整的月份名称
SELECT CONVERT(VARCHAR(20),GETDATE(),107)
我们可以通过SQL检索完整的月份名称吗?
此外,如果我们采用上述方法,那么在此文件日期列的平面文件连接管理器中使用的适当日期类型在CSV文件中显示正常吗?
答案 0 :(得分:2)
Use the below approach to get full month name:
declare @d datetime ='2014-12-17 15:16:00'
select datename(month,@d)+' '+cast(datepart(dd,@d) as varchar(20))+','+cast(datepart(year,@d) as varchar(4))
答案 1 :(得分:0)
Karthick建议的那个在SQL Server中提供了所需的格式 但即使你使用" string [DT_STR]"我们也会得到如下所示的SSIS错误。作为包中的数据类型 专栏" MYDATE"无法在unicode和非unicode字符串数据类型之间进行转换
为了处理这个问题,我们只需要将日期CAST到VARCHAR,如下所示,SSIS包正常工作。
DECLARE @d DATETIME ='2014-12-17 15:16:00'
SELECT CAST(DATENAME(MONTH,@ d)+'' + CAST(DATEPART(DD,@ d)AS VARCHAR(20))+',' + CAST (DATEPART(年,@ d)AS VARCHAR(4))AS VARCHAR(150))