Sql 如何在日期之间查找状态

Sql 如何在日期之间查找状态,sql,sql-server,datetime,Sql,Sql Server,Datetime,我有这样的桌子: Number |Status |Start_Date ------------------------------------ A |Active |2016-11-29 22:51 A |blocked |2016-12-20 22:51 A |Active |2017-01-09 22:51 A |blocked |2017-01-29 22:51 我的目标是在声明日期时,查找Anum

我有这样的桌子:

Number  |Status     |Start_Date 
------------------------------------
A       |Active     |2016-11-29 22:51
A       |blocked    |2016-12-20 22:51
A       |Active     |2017-01-09 22:51
A       |blocked    |2017-01-29 22:51
我的目标是在声明日期时,查找
A
number上的状态

例如:

Declare @Date varchar(25)='2017-01-10 12:40'
结果:

Number  |Status     |Date 
------------------------------------
A       |Active     |2017-01-10 12:40
因为
2017-01-10 12:40
介于
2017-01-09 22:51
2017-01-29 22:51
然后状态为激活状态


但是我不知道如何查找Declare Date的状态

您可以通过执行以下操作来查找单个“编号”的状态:

select top 1 t.*
from likethis t
where t.date <= @date
order by t.date desc;

您将要选择上一个:

select top 1 * from table
where Date <= @Date 
and Number = 'A' 
order by Date desc
从表中选择前1*
在哪里约会
select top 1 * from table
where Date <= @Date 
and Number = 'A' 
order by Date desc