【问题标题】:Just the day formating in SSIS expression builder只是在 SSIS 表达式生成器中格式化的一天
【发布时间】:2013-07-11 10:01:11
【问题描述】:

我正在尝试在 SSIS 2005 表达式生成器中格式化(以 yyyymmdd 格式)上个月的第一天。到目前为止,我已经成功地正确表示了年份和月份。但是,当谈到表达式的白天部分时,我被卡住了。

下面是我试图破解的完整错误代码。

RIGHT((DT_WSTR, 4) YEAR( DATEADD( "mm",-1, getdate() )), 4) +
RIGHT("0" + (DT_WSTR,2) MONTH( DATEADD( "mm",-1, getdate() )), 2)+
RIGHT("0" + (DT_WSTR,2) DAY(DATEADD("mm", DATEDIFF("mm", 0, GETDATE())-1,0)),2)

第一行返回年份(yyyy 格式),第二行返回月份(mm 格式)。但是,我坚持在第三行返回日部分(格式为 01 或仅 1)。

感谢任何帮助。

【问题讨论】:

    标签: date ssis format


    【解决方案1】:

    这一天不需要做任何花哨的表达。每月的第一天总是 01,所以你的表达式应该是你已经拥有的年份和月份加上字符串“01”的连接

    RIGHT((DT_WSTR, 4) YEAR( DATEADD( "mm",-1, getdate() )), 4) +
    RIGHT("0" + (DT_WSTR,2) MONTH( DATEADD( "mm",-1, getdate() )), 2)+
    "01"
    

    【讨论】:

      【解决方案2】:

      这将为任何日期返回一个 2 字符的天部分:

      right('0'+cast(day(getdate()) as Varchar(3)),2)
      

      【讨论】:

        猜你喜欢
        • 2016-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-18
        • 1970-01-01
        • 2015-09-25
        相关资源
        最近更新 更多