【发布时间】:2009-08-18 20:43:55
【问题描述】:
当我做例如 DATEPART(mm, GETDATE()) 时,我得到的月份结果是八月份的“8”。如果我在 12 月做同样的事情,我会得到“12”。这是两个不同长度的结果。
有没有办法让 DATEPART 结果始终为固定长度?例如,月份将显示为 08 或 12。而天数将显示为 05 和 30。
更多详情:
我在 SSIS 中使用派生列转换来获取服务器日期戳,并删除所有格式(空格、冒号、破折号等),以便将其用作主键的一部分。
我目前工作的论坛如下,但是它导致可变长度的结果并不理想。我希望所有结果都具有相同的长度。
((DT_STR,4,1252)DATEPART("yyyy",createDate)) + ((DT_STR,2,1252)DATEPART("mm",createDate)) + ((DT_STR,2,1252)DATEPART("dd",createDate)) + ((DT_STR,2,1252)DATEPART("hh",createDate)) + ((DT_STR,2,1252)DATEPART("mi",createDate)) + ((DT_STR,2,1252)DATEPART("ss",createDate)) + ((DT_STR,2,1252)DATEPART("ms",createDate))
输入看起来像这样:
2008 年 9 月 11 日晚上 8:50:47:300
结果如下:
20089112050473
结果应如下所示:
20080911205047300
【问题讨论】:
标签: sql sql-server ssis