1

我正在尝试将 DT_WSTR 的输入转换为 SSIS Derived 列上的 DT_TIMESTAMP,当我这样做时,值不匹配,在一个场合它正确识别年份,但另一方面它认为这一天是一年

我试着做

(DT_TIMESTAMP)((DT_WSTR,4)YEAR([Data Hora]) + RIGHT("0" + (DT_WSTR,2)MONTH([Data Hora]),2) + RIGHT("0" + (DT_WSTR,2)DAY([Data Hora]),2) + (DT_WSTR,10) Time_Column)

没有成功

08-04-19 15:31:27这是我输入的内容,有时它会正确地将 19 识别为 2019 年,但有时它认为 08 是年份,所以19/04/2008我想要第一个。

我希望在dd/mm/yyyy hh:MM:ss.

4

1 回答 1

0

你的问题不清楚。在这个答案中,我将尝试修复提供的表达式。尝试使用以下表达式:

(DT_DBTIMESTAMP)((DT_WSTR,4)YEAR([Data Hora]) + "-" +
RIGHT("0" + (DT_WSTR,2)MONTH([Data Hora]),2) + "-" + 
RIGHT("0" + (DT_WSTR,2)DAY([Data Hora]),2) + " " + 
(DT_WSTR,10) [Time_Column]) 

另一个建议是,如果日期格式很棘手(2 位数年份部分),最好使用脚本组件来解析日期值,因为它使用Date.ParseExact()函数提供了更多选项,例如:

Row.outDateColumn = DateTime.ParseExact(Row.inStringDate,"dd-MM-yy HH:mm:ss",System.Globalization.CultureInfo.InvariantCulture);
于 2019-07-15T20:32:46.783 回答