SSIS表达式查找给定周数的星期五日期

SSIS expression to find date of the Friday given week number

我正在尝试为连接字符串创建一个表达式,以便为我提供给定周数的日期,如果可能的话,还提供该周星期五的日期。

这就是我的目标输出:2017 年 2 月 24 日第 9 周(我已经有了月份名称的变量表达式)

这个 answer 给出了上周五的日期:

DATEPART("dw", GETDATE()) != 2?
GETDATE():
DATEADD("dw", -3, GETDATE())

但不是连接字符串形式。

这就是我用来计算周数的方法,如果有帮助的话:

Right("" + (DT_STR,4,1252) DatePart("ww", DateAdd("ww", -2, getdate())), 2)

谢谢,

J

旁注:

解决方案

阅读您在问题中提供的答案后,这是 return 上周五的表达:

DATEADD("dd", -1 - (DATEPART("dw", @date) % 7), @date)

要获得预期的输出,您必须使用如下表达式:

我假设你想建立一个像下面这样的连接字符串(文件路径)C:\NewFolder\Week7 - 24 Feb 2017\File.txt

在这个答案中,我使用 GETDATE() 函数作为日期值

"C:\NewFolder\Week" + Right("" + (DT_STR,4,1252) DatePart("ww", DateAdd("ww", -2, GETDATE())), 2) + " - " + (DT_STR,20,1252)DAY(DATEADD("dd", -1 - (DATEPART("dw", GETDATE()) % 7), GETDATE()) ) + " " + (DT_STR,20,1252)(MONTH(GETDATE()) == 1 ? "Jan" : MONTH(GETDATE()) == 2 ? "Feb" : MONTH(GETDATE()) == 3 ? "Mar" : MONTH(GETDATE()) == 4 ? "Apr" : MONTH(GETDATE()) == 5 ? "May" : MONTH(GETDATE()) == 6 ? "Jun" : MONTH(GETDATE()) == 7 ? "Jul" : MONTH(GETDATE()) == 8 ? "Aug" : MONTH(GETDATE()) == 9 ? "Sep" : MONTH(GETDATE()) == 10 ? "Oct" : MONTH(GETDATE()) == 11 ? "Nov" : MONTH(GETDATE()) == 12 ? "Dec" : "NA") + " " +  (DT_STR,20,1252)YEAR( DATEADD("dd", -1  - (DATEPART("dw", GETDATE()) % 7),GETDATE() )) + "\File.txt"