在指定日期之前查找最新值

时间:2012-05-22 12:06:26

标签: sql sql-server-2008 tsql

我有汇率表,其中有多个具有汇率的日期明智记录。

Date           Rate
17/05/2012     5
23/05/2012     6
27/05/2012     7

现在我希望在通过任何日期时率,如果,我通过20/05/2012然后费率5应该返回,因为20/05/2012在日期范围17和23可能会在2012年过去。

2 个答案:

答案 0 :(得分:3)

假设您有正确的数据类型(即,不存储日期值的varchar ......)

SELECT TOP 1
  Rate
FROM
  MyTable
WHERE
  DateColumn <= '20120520'
ORDER BY
  DateColumn DESC

答案 1 :(得分:1)

这样的事情会起作用:

select Rate from tablename where Date in (
  select max(Date) as Date
  from tablename
  where Date <= convert(datetime, '20/05/2012', 103)
  )