SQL搜索特定条件的日期

时间:2018-06-30 00:03:49

标签: date search sql-server-2012

我有一个股票收盘价表。

Ticker  Date    Close
BCD 06/28/18     7.45 
BCD 06/27/18     8.01 
BCD 06/26/18     7.51 
BCD 06/25/18     8.24 
BCD 06/24/18     8.09 
BCD 06/23/18     8.41 
BCD 06/22/18     8.66 
BCD 06/21/18     10.42 
BCD 06/20/18     10.42 
BCD 06/19/18     10.73 
BCD 06/18/18     10.72 
BCD 06/17/18     10.44 
BCD 06/16/18     8.74 
BCD 06/15/18     8.70 
BCD 06/14/18     8.49 
BCD 06/13/18     6.00 
BCD 06/12/18     5.87 
BCD 06/11/18     5.97 
BCD 06/10/18     5.91 
BCD 06/09/18     5.89 
BCD 06/08/18     6.40 

我想查找收盘价为<=今天的价格的最后日期。

最新价格是7.45,所以它将是6/13/18。

在SQL 2012中编写此代码的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

这对我有用。 SQL Server 2008,所以也许与2012不兼容,但这似乎很简单。

SELECT TOP 1 [Date] FROM prices
  WHERE [Close] <= (
    SELECT [Close] FROM prices WHERE [Date] = (SELECT MAX([Date]) FROM prices)
  )
  AND [Date] < (SELECT MAX([Date]) FROM prices)
  ORDER BY [Date] DESC