2010-06-30 121 views
3

我想將日期轉換爲ISO格式,並將其用作SSIS表達式中的字符串。SSIS - 在表達式中使用日期

這是我在T-SQL

select convert(varchar(8), GetDate(), 112) 

類型,這就是我回來

20100630 

我的目標 - 是創建基於日期的存檔文件夾。我有創建文件夾排序的文件系統任務部分,我可以做到這一點...我只需要能夠將日期轉換爲字符串,所以我可以使用它。

在此先感謝。

回答

2

你需要添加一個表達式:

RIGHT((DT_WSTR, 4) DATEPART("yyyy", GetDate()), 4) + 
RIGHT("0" + (DT_WSTR,2)DatePart("mm", GetDate()), 2) + 
RIGHT("0" + (DT_WSTR,2)DatePart("dd", GetDate()), 2) 

這個表達式將創建你之後的結果。

+0

ALMOST正確。那個返回100630,但我把第一行中的2改成了4,並得到了20100630,這正是我想要的。所以你可以在背後獲得豐厚的答案,並且接受答案。 – cometbill 2010-06-30 11:26:27

+0

@Cometbill:我的錯。已經糾正了答案。 – 2010-06-30 11:27:16

2

在SSIS中,您可以使用DT_STR或DT_WSTR類型來完成。有幾個例子是

(DT_STR, 4, 1252)YEAR(GETDATE()) + 
RIGHT("0" + (DT_STR, 2, 1252)MONTH(GETDATE()), 2) + 
RIGHT("0" + (DT_STR, 2, 1252)DAY(GETDATE()), 2) 

(DT_WSTR, 4)YEAR(GETDATE()) + 
RIGHT("0" + (DT_WSTR, 2)MONTH(GETDATE()),2) + 
RIGHT("0" + (DT_WSTR, 2)DAY(GETDATE()), 2) 

請參閱MSDN documentation以獲取更多信息。

3

老問題,更好地兒的答案,從阿德里安的評論here

嘗試的中間轉換爲類型DT_DBDATE。投射到WSTR給出格式 「YYYY-MM-DD」,這是很容易收拾一個 字符串:

REPLACE((DT_WSTR,200)(DT_DBDATE)GETUTCDATE(), 「 - 」, 「」)

或不REPLACE使用,以獲得YY-MM-DD