SSIS - 在表达式中使用日期

时间:2010-06-30 10:42:21

标签: sql-server-2005 ssis

我想将日期转换为ISO格式,并将其用作SSIS中表达式中的字符串。

这是我在T-SQL中键入的内容

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

这就是我回来的原因

20100630

我的目标 - 根据日期创建存档文件夹。我有文件系统任务部分创建一个文件夹排序,我可以这样做...我只需要能够将日期转换为字符串,所以我可以使用它。

提前致谢。

4 个答案:

答案 0 :(得分:3)

老问题,更好的答案,来自Adrian的评论here

  

尝试使用中间转换来键入DT_DBDATE。投射到WSTR给出了一个   格式为“YYYY-MM-DD”的字符串,很容易整理:

     

REPLACE((DT_WSTR,200)(DT_DBDATE)GETUTCDATE(), “ - ”, “”)

或者在没有REPLACE的情况下使用YY-MM-DD

答案 1 :(得分: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)

此表达式将创建您所追求的结果。

答案 2 :(得分: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 :(得分:2)

要添加其他答案,以下是我经常使用的参考指南:

http://sqlis.com/sqlis/post/Expression-Date-Functions.aspx