Sql 如何使用ssis表达式选择上一个日期?

Sql 如何使用ssis表达式选择上一个日期?,sql,ssis,Sql,Ssis,嗨,我有ssis包和下面的表达式 它为我提供了文件名的日期和时间 @[User::FilePath]+ "Bloomberg_"+REPLACE((DT_STR, 20, 1252) (DT_DBTIMESTAMP)@[System::StartTime], ":", "")+".xls" \\public\\Bloomberg_Upload\\Bloomberg_2013-07-05 005738.xls 我只需要在工作日前获得一个日期,如下所示: \\public\\Bloomberg_

嗨,我有ssis包和下面的表达式 它为我提供了文件名的日期和时间

@[User::FilePath]+ "Bloomberg_"+REPLACE((DT_STR, 20, 1252)
(DT_DBTIMESTAMP)@[System::StartTime], ":", "")+".xls"

\\public\\Bloomberg_Upload\\Bloomberg_2013-07-05 005738.xls
我只需要在工作日前获得一个日期,如下所示:

\\public\\Bloomberg_Upload\\Bloomberg_2013-07-04 005738.xls
我该怎么做

星期一-

如果我在星期一执行我的包,日期应该是星期五

请引导我

我试着这样做-

(DT_I4)DATEPART("weekday",@[System::StartTime]) ==2 ? 
Replace((DT_STR, 20, 1252)(DATEADD( "D", -3,@[System::StartTime])),":","-") + ".xls" :
Replace((DT_STR, 20, 1252)(DATEADD( "D", -1,@[System::StartTime])),":","-") + ".xls"

也许最好使用
GETDATE()
然后你可以这样做负号:

DATEADD("day", -1, GETDATE())
请看这里:

如果我理解正确,您只是想知道如何获取前一天的日期,如果前一天的日期恰好是周末,那么就获取最后一个工作日

您的代码几乎完全正确,只需更改工作日常量

此代码将检查是否为星期一,如果为,则减去3天,否则减去1

@[User::FilePath]+"Bloomberg_"+((DT_I4)DATEPART("weekday",@[System::StartTime]) ==1 ? 
Replace((DT_STR, 20, 1252)(DATEADD( "D", -3,@[System::StartTime])),":","") + ".xls" :
Replace((DT_STR, 20, 1252)(DATEADD( "D", -1,@[System::StartTime])),":","") + ".xls")
去年:

(DT_WSTR,4)年(DATEADD(“yy”,-1,GETDATE())

上季度:

(DT_WSTR,1)DATEPART(“qq”,DATEADD(“qq”,-1,GETDATE()))