【问题标题】:SSIS Date FunctionSSIS 日期函数
【发布时间】:2013-07-17 20:58:04
【问题描述】:

我坚持我的 ssis 包中的日期部分

我在我的包中创建了 3 个变量并使用了这些表达式

1) @Days - 8

2) @DateDiff -  (DT_WSTR,4)YEAR(GETDATE()) + "-"    + RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()), 2)+ "-"+   RIGHT("0" + (DT_WSTR,2)DAY(DATEADD("dd", - @[User::Days] , GETDATE())), 2)

3) @datestarted - DATEDIFF("dd", (DT_DBTIMESTAMP) @[User::DiffDate],(DT_DBTIMESTAMP) @[User::PatDate]   ) 

这里的 patCon 和 getdate() 一样。

在这里,如果我将 Day 更改为 30,它不会带我到 2013-06-17,它会显示相同的日期 2013-07-17(假设 gatedate() 是 2013-07-17)。

我想要动态更改日期的表达式 假设如果我放置了 Days - 50 那么它也应该改变月份。如果 days - 500 它会改变月份和年份。

请让我知道更多细节。感谢您的时间和帮助。我只想在包端而不是 T-SQL 端开发它。

--343

【问题讨论】:

    标签: sql sql-server sql-server-2008 tsql ssis


    【解决方案1】:

    您仅将 DATEADD 应用于获取日期子字符串的部分,如果您希望它们受到影响,您还需要将其应用于月份和年份。我相信就是这样:

    (DT_WSTR,4)YEAR(DATEADD("dd", - @[User::Days] , GETDATE())) + "-"    
    + RIGHT("0" + (DT_WSTR,2)MONTH(DATEADD("dd", - @[User::Days] , GETDATE())), 2) + "-"
    +   RIGHT("0" + (DT_WSTR,2)DAY(DATEADD("dd", - @[User::Days] , GETDATE())), 2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 2016-07-16
      • 2019-05-07
      • 1970-01-01
      • 2016-05-23
      相关资源
      最近更新 更多