首页 > 解决方案 > 在 SSIS 中引入正确的日期格式

问题描述

我需要美国格式的日期格式,即 2018 年 9 月 30 日;2018 年 8 月 31 日;2018 年 7 月 31 日.. 在 SSIS 中以此类推。我已将代码编写为

LEFT((DT_STR,50,1252)DATEADD("d",-DAY(GETDATE()),GETDATE()),10)

这带来了 2018-09-30 的日期,这不是正确的格式。我确实将数据类型指定为“STRING”,因为上面的代码没有将“DATE/DATE-TIME”作为数据类型。

我正在尝试将上个月的最后一个日期带入,因此当前获取的格式不正确。

有什么猜测吗?

谢谢!

标签: sql-serverssisssis-2012

解决方案


对于这样的格式,需要从日期中提取日期部分并相应地连接起来。下面的表达式会将日期转换为 DD/MM/YYYY 格式。由于您在问题中仅列出了月份的个位数,因此此示例不考虑零,并且长度会有所不同。如果您希望将零添加到单个数字的日期和月份,"0"则需要在日期和月份之前附加一个(带引号)。

RIGHT((DT_STR, 2, 1252) DATEPART("MM", DATEADD("D",-DAY(GETDATE()),GETDATE())), 2) 
+ "/" + RIGHT((DT_STR, 2, 1252) DATEPART("DD", DATEADD("D",-DAY(GETDATE()),GETDATE())), 2) 
+ "/" +  (DT_STR, 4, 1252) DATEPART("YYYY", DATEADD("D",-DAY(GETDATE()),GETDATE()))

推荐阅读