SSIS 使用 SSIS 表达式将 mmddyyyy 格式的日期转换为日期格式

SSIS convert date in mmddyyyy format to date format using SSIS expression

我正在接收 MMddyyyy 格式的日期,但想将其转换为 SQL/SSIS yyyy-MM-dd 中的日期格式,如何使用 SSIS 表达式来实现。

我收到的日期示例是 03051978,但希望它出现在 1978-03-05

谢谢

这是您的 SSIS 表达式。显然,这里的假设是日和月部分总是2位:

(DT_DBDATE)(SUBSTRING(col,5,4) + "-" + SUBSTRING(col,1,2) + "-" + SUBSTRING(col,3,2))

您可以使用以下表达式:

(DT_DATE)(RIGHT("0000" + RIGHT("03051978",4),4) + "-" + RIGHT("00" + LEFT("03051978",2),2) + "-" + RIGHT("00" + SUBSTRING("03051978",3,2),2))

只需将"03051978"替换为列名即可,例如:

(DT_DATE)(RIGHT("0000" + RIGHT([DateColumn],4),4) + "-" + RIGHT("00" + LEFT([DateColumn],2),2) + "-" + RIGHT("00" + SUBSTRING([DateColumn],3,2),2))

来自 SSIS 表达式测试器工具的屏幕截图

我会使用脚本组件。

DateTime.ParseExact([datecol],"MMddyyyy", System.Globalization.CultureInfo.InvariantCulture);