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

时间:2017-02-23 17:50:06

标签: sql-server ssis expression connection-string week-number

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

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

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

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

但它不是连接字符串形式。

这是我用来获取周数的原因,如果有帮助的话:

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

谢谢,

Ĵ

1 个答案:

答案 0 :(得分:0)

附注:

<强>解决方案

在阅读了你在问题中提供的答案之后,这是表达了上周五的回复:

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"