2017-09-26 81 views
0

在SSRS中我怎麼寫一個表達式來找到去年的某個日期的星期一 例如:如果我選擇9/26/2016這是一個星期一,我必須找到9/26/2015是星期一還是不是。在這種情況下,2015年9月26日是星期六,所以我必須要設置日期參數作爲最近的星期一是2015年9月21日
如何通過一個SSRS表達SSRS表達式到去年的星期一

=DATEADD(DateInterval.Year,-1,Parameters!BeginDate.Value) 

這將做到這一點幫助你找到去年同期的日期,但我怎麼能更改,使其選擇去年週一

回答

1
=DateAdd 
(
    DateInterval.Day 
    , 2 - weekday(dateadd(DateInterval.Year,-1,Parameters!BeginDate.Value)) 
    , dateadd(DateInterval.Year,-1,Parameters!BeginDate.Value) 
) 

打破DateAdd函數下來... 第一個參數是簡單地告訴它調整多少天 下一個參數獲取參數日期減去一年的週日,那麼我們將這個數字從2(這是一個星期一的星期幾值),所以如果去年的參數日期是星期四(5),我們將得到2-5,這給了我們-3,所以我們需要三天的我們的約會。 最後一個參數是參數日期減去一年,這是我們要在3天后減去的日期(在本例中)。

注意如果系統設置不是默認返回可能不相同的,所以檢查並調整相應的, 2-(...部分,它設置爲任何週一計算結果爲平日。