SSIS表达式:将日期转换为字符串

res*_*101 20 expression ssis getdate

我是SSIS的新手,我正在尝试将GetDate()转换为字符串"DD-MM-YYYY".这是我到目前为止构建的表达式:

(DT_WSTR, 8)  DAY( GETDATE()) + "-" + (DT_WSTR, 8)  (MONTH(GETDATE()) - 1) + "-" + (DT_WSTR, 8) YEAR(GETDATE())
Run Code Online (Sandbox Code Playgroud)

我得到的问题是Month()将月份"23-4-2013"​​转换为单个字符,当我想要它的双字符时,与日相同.无论几个月,我如何将它变成双重角色?

Mil*_*kov 38

对于SSIS,你可以选择:

RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , GETDATE()), 2) + "-" + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("mm" , GETDATE()), 2) + "-" +  (DT_STR, 4, 1252) DATEPART("yy" , GETDATE())
Run Code Online (Sandbox Code Playgroud)

表达构建器屏幕:

表达式构建器屏幕

  • 没问题,减去一个月,将表达式的所有`GETDATE()`部分改为`DATEADD("mm", - 1,GETDATE())`保留其他所有内容. (2认同)

Max*_* S. 13

比@Milen提出的要简单的东西,但是它提供了YYYY-MM-DD而不是您想要的DD-MM-YYYY:

SUBSTRING((DT_STR,30, 1252) GETDATE(), 1, 10)
Run Code Online (Sandbox Code Playgroud)

表达式生成器屏幕:

在此处输入图片说明