如何在SSIS中将if-else与平面文件连接表达式一起使用?
我有一个SSI,它从.csv文件中获取数据并插入到sql表中 现在我的文件名是 连接字符串的平面文件属性和表达式为:如何在SSIS中将if-else与平面文件连接表达式一起使用?,ssis,Ssis,我有一个SSI,它从.csv文件中获取数据并插入到sql表中 现在我的文件名是 连接字符串的平面文件属性和表达式为: @[User::Directory]+@[User::Filename]+“”+(DT_STR,41252)DATEPART(“yyyy”,getdate())+“-”+ 右(“0”+(DT_STR,41252)日期部分(“mm”,getdate()),2)+“-”+ 右键(“0”+(DT_STR,41252)DATEPART(“dd”,DATEADD(“day”,-1,GETD
@[User::Directory]+@[User::Filename]+“”+(DT_STR,41252)DATEPART(“yyyy”,getdate())+“-”+
右(“0”+(DT_STR,41252)日期部分(“mm”,getdate()),2)+“-”+
右键(“0”+(DT_STR,41252)DATEPART(“dd”,DATEADD(“day”,-1,GETDATE()),2)+“.csv”
它给我的文件名是:C:\mytempdata\ACCTMVCHNG\u CSV 2011-09-18.CSV
这是昨天
但是,当我在周一运行此程序包时,当前的文件仅用于周五,其名称将为ACCTMVCHNG_CSV 2011-09-16.CSV
所以我想在这个表达式中使用if-else
比如,如果今天是星期一,那么使用星期五文件,我的意思是创建星期五的文件路径
如下:C:\mytempdata\ACCTMVCHNG\u CSV 2011-09-16.CSV
或者像我在上面的表达式中所做的那样,把昨天当作过去…如果我在星期二正确地理解了您的意思,那么您希望在星期一创建文件。在星期三,您希望在星期二创建文件。但是在周一,您不希望在周日创建文件,而是希望在周五创建文件
@[User::Directory] + @[User::FileName]+" "+
(DT_STR,4,1252)DATEPART("yyyy", getdate() ) +"-"+
RIGHT("0" + (DT_STR,4,1252)DATEPART("mm", getdate() ), 2) +"-"+
RIGHT("0" + (DT_STR,4,1252)DATEPART("dd",
DATEADD("day", DATEPART("dw", GETDATE()) == 1 ? -3 : -1, GETDATE()) ), 2) +".csv"
试试这个表达。它扩展了你的条件。它再次使用带有“dw”参数的
DATEPART
函数,该参数返回一周中当前日期的序号。玩这个。(在我的情况下,星期一是一周的第一天)如果当前日期是星期一,则DATEADD
函数add-3天。帮助我所有发生的事情没有答案:(?