2010-11-18 52 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