日期在SSIS中转换为月份

时间:2014-07-10 16:29:10

标签: date ssis

我有一个文本文件,其中我以英国格式创建日期,即'08 / 01/2014'。我使用派生列来确保日期的格式保持不变并使用类型转换为日期

(DT_DBDATE) (SUBSTRING(VOUCHER_DATE,1,2) + "-" + SUBSTRING(VOUCHER_DATE,4,2) 
                                         + "-" + SUBSTRING(VOUCHER_DATE,7,4)) 

所以它应该在08/01/2014(年/月/日)回复日期,但它将它转换为01/08/2014。它只转换小于10的日期。如果日期是11或12或13它就像12/01/2014一样好。

参见图中的示例。 1月9日正在转换为9月1日,同时1月22日也没事。

01/09/2014
01/09/2014
22/01/2014
22/01/2014
22/01/2014
22/01/2014

知道为什么吗?

1 个答案:

答案 0 :(得分:0)

我认为你做错了,DT_DBDATE格式为yyyy-mm-dd link。 所以它应该是:

(DT_DBDATE) (SUBSTRING(VOUCHER_DATE,7,4) + "-" + SUBSTRING(VOUCHER_DATE,4,2) + "-" + 
             SUBSTRING(VOUCHER_DATE,1,2)) 

来源:

SELECT N'08/01/2014' as VOUCHER_DATE
UNION ALL
SELECT N'01/08/2014'

结果:

VOUCHER_DATE    Stringtodate
08/01/2014       2014.01.08
01/08/2014       2014.08.01