2010-06-30 136 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