【问题标题】:SSIS expression builder for month一个月的 SSIS 表达式生成器
【发布时间】:2016-07-19 15:56:54
【问题描述】:

我正在尝试在 Microsoft Visual Studio 的表达式生成器中为 ssis 包获取评估值“Jun2016”。

我有密码

(DT_WSTR,4)MONTH( DATEADD( "month", -1, getdate()))

它只给出一个值'6'

我怎样才能把它改成给我'Jun'

【问题讨论】:

  • 不是 100% 确定,但请尝试 (DT_WSTR,8)MonthName(DATEADD("month", -1, getdate()), True) + (DT_WSTR,4)YEAR(getdate())。如果您将布尔参数更改为 False,它将不会缩写月份名称。如果这不起作用,我能想到的唯一其他方法是构建一个像这样的可怕表达式:MONTH(DATEADD("month"), -1, getdate()) == 1 ? "Jan" : MONTH(DATEADD("month"), -1, getdate()) == 2 : "Feb" : ... 或通过使用SELECT LEFT(DATENAME(month, DATEADD(...)), 3) + DATENAME(year, DATEADD(...)) 执行 SQL 任务

标签: sql visual-studio ssis


【解决方案1】:
(MONTH(DATEADD( "mm", -1, getdate())) == 1 ? "Jan" : MONTH(DATEADD( "mm", -1, getdate())) == 2 ? "Feb" : MONTH(DATEADD( "mm", -1, getdate())) == 3 ? "Mar" : 
     MONTH(DATEADD( "mm", -1, getdate())) == 4 ? "Apr" : MONTH(DATEADD( "mm", -1, getdate())) == 5 ? "May" : MONTH(DATEADD( "mm", -1, getdate())) == 6 ? "Jun" : 
     MONTH(DATEADD( "mm", -1, getdate())) == 7 ? "Jul" : MONTH(DATEADD( "mm", -1, getdate())) == 8 ? "Aug" : MONTH(DATEADD( "mm", -1, getdate())) == 9 ? "Sep" : 
     MONTH(DATEADD( "mm", -1, getdate())) == 10 ? "Oct" : MONTH(DATEADD( "mm", -1, getdate())) == 11 ? "Nov" : MONTH(DATEADD( "mm", -1, getdate())) == 12? "Dec": "")+ 
    RIGHT((DT_WSTR, 4) YEAR( DATEADD( "mm",-1, getdate() )), 4)

它应该消失,同时删除一年中的月份。

【讨论】:

    【解决方案2】:

    这应该可行:

    (MONTH(RowDate) == 1 ? "Jan" : MONTH(RowDate) == 2 ? "Feb" : MONTH(RowDate) == 3 ? "Mar" : 
      MONTH(RowDate) == 4 ? "Apr" : MONTH(RowDate) == 5 ? "May" : MONTH(RowDate) == 6 ? "Jun" : 
      MONTH(RowDate) == 7 ? "Jul" : MONTH(RowDate) == 8 ? "Aug" : MONTH(RowDate) == 9 ? "Sep" : 
      MONTH(RowDate) == 10 ? "Oct" : MONTH(RowDate) == 11 ? "Nov" : MONTH(RowDate) == 12 ? "Dec" : 
      "ERR") + " (" + (DT_WSTR,4)YEAR(RowDate) + ")"
    

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

    【讨论】:

    • 我在发帖前已经看过这个,但它似乎不起作用。
    【解决方案3】:

    要获取 YearMonth ,如果文件名为 FileNameYYYY_MM_DD.xls,我们可以使用以下代码:

    (DT_WSTR,4)YEAR(DATEADD( "MM", -1,  (DT_DATE) Replace (SUBSTRING( @[User::FileName]  , FINDSTRING(@[User::FileName], "2017", 1) , 10 ), "_", "-" ))+RIGHT("00"+(DT_WSTR,2)MONTH(DATEADD( "MM", -1,  (DT_DATE) REPLACE(SUBSTRING( @[User::FileName]  , FINDSTRING(@[User::FileName], "2017", 1) , 10 ), "_", "-" )),2)
    

    【讨论】:

      猜你喜欢
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      相关资源
      最近更新 更多