嗨,我有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"
答案 0 :(得分:0)
答案 1 :(得分:0)
如果我理解你正确,你只是想弄清楚如何获得前一天的日期,如果前一天的日期恰好是周末,那么就是最后一个工作日。
你的代码几乎没有用,你只需要改变你的工作日常数。
此代码将检查是否为星期一,如果是则减去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")
答案 2 :(得分:0)
去年:
(DT_WSTR,4)YEAR(DATEADD(" YY", - 1,GETDATE()))
上一季度:
(DT_WSTR,1)DATEPART(" QQ",DATEADD(" QQ", - 1,GETDATE()))