2010-11-18 38 views
0

我需要選擇最接近的日期參數的前一個日期。目前我選擇使用此代碼的日期最接近的兩側:我知道這是非常簡單的,但可以有人建議我將如何能夠選擇之前@statementdate參數最接近的日期獲取最近的前一個日期T-SQL

SELECT TOP 1 equities, fund, e_date 
     FROM tbl_assetmix 
     WHERE fund = @fund_code 
     ORDER BY ABS(DateDiff(dd, e_date, @statementdate)) asc 

感謝, 特里斯坦

回答

3

選擇只是其中行日期早於@statementdate:

SELECT TOP 1 equities, fund, e_date 
FROM tbl_assetmix 
WHERE fund = @fund_code 
AND e_date < @statementdate 
ORDER BY ABS(DateDiff(dd, e_date, @statementdate)) asc 

或更換

AND e_date < @statementdate 

AND e_date <= @statementdate 

如果同一天被允許。

+4

你不需要使用DateDiff,你可以按日期排序,並採取最新的。 – 2010-11-18 12:27:14