我正在尝试为连接字符串创建一个表达式,以便给出一个给出一周数字的日期,如果可能的话,还给出该周五的日期。
这就是我的目标输出:第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)
谢谢,
Ĵ
答案 0 :(得分:0)
附注:
您可以使用third party SSIS expression evaluator测试表达式而无需启动新的SSIS项目
<强>解决方案强>
在阅读了你在问题中提供的答案之后,这是表达了上周五的回复:
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"