gpt4 book ai didi

sql - 如何查找日期之间的状态

转载 作者:行者123 更新时间:2023-12-02 08:15:17 26 4
gpt4 key购买 nike

我有这样的表:

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 上的状态数

例如:

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那么状态是Active

但我不知道如何查找申报日期的状态

最佳答案

您可以通过以下方式找到单个“号码”的状态:

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

如果你想对所有的“Number”都这样做,那么你可以使用row_number():

select t.*
from (select t.*,
row_number() over (partition by t.number order by t.date desc) as seqnum
from likethis t
where t.date <= @date
) t
where seqnum = 1;

关于sql - 如何查找日期之间的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42511974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com