如何在ssis中以yyyymmdd格式获取最近的星期日日期?在SQL中应用一些公式实际上得到了我需要的东西。然而在ssis中似乎有些不同。任何建议?
答案 0 :(得分:0)
我做了这个练习:假设考虑当天的日期并在一周的某一天结账,然后在最近的最周日移动一天。
首先你需要为当天的某一天(@ [User :: DayOfWeek] int32; Sunday = 1)引入一个变量,并计算你必须在周日返回的天数:
@ [用户:: DAYOFWEEK]
DATEPART( "dw", getdate() ) == 1 ? 0
: DATEPART( "dw", getdate() ) == 2 ? -1
: DATEPART( "dw", getdate() ) == 3 ? -2
: DATEPART( "dw", getdate() ) == 4 ? -3
: DATEPART( "dw", getdate() ) == 5 ? -4
: DATEPART( "dw", getdate() ) == 6 ? -5 : -6
所以你需要的表达是(带走返回星期日的日子):
(DT_WSTR,4) YEAR(DATEADD( "DD", @[User::DayOfWeek], getdate() )) +
RIGHT( "0" + (DT_WSTR,2) MONTH(DATEADD( "DD", @[User::DayOfWeek], getdate() ) ),2) +
RIGHT( "0" + (DT_WSTR,2) DAY(DATEADD( "DD", @[User::DayOfWeek], getdate() )),2)
这是2017-02-10的结果:
20170205
我希望这对你有所帮助。