如何仅从 DateTime 数据类型比较小时和分钟

How to compare Hour and Minute only from DateTime data type

我的字段 endTime 具有 DateTime 数据类型和状态 (int)。如果 endTime 的小时和分钟等于当前时间的小时和分钟,我想将我的状态字段从 1 更新为 0。这一天完全一样。所以哪一天都无所谓。

我该怎么做?

您可以使用 datepart():

select (case when datepart(hour, EndTime) = datepart(hour, getdate()) and
                  datepart(minute, EndTime) = datepart(minute, getdate())
             then 1 else 0
        end) as status

您也可以将其放入更新中,如果那是您真正想要的。

编辑: 更新为:

update table
    set status = (case when datepart(hour, EndTime) = datepart(hour, getdate()) and
                            datepart(minute, EndTime) = datepart(minute, getdate())
                       then 1 else 0
                  end);

试试这个:

UPDATE <TABLE> 
SET STATUS = 1
WHERE MINUTE(GETDATE()) = MINUTE(ENDTIME)
   AND HOUR(GETDATE()) = HOUR(ENDTIME)
UPDATE <table> SET status = 0
WHERE datepart(hour, endTime) = datepart(hour,getdate())
AND datepart(minute, endTime) = datepart(minute,getdate());

这就是我在 SQL-Server 2008 上的做法。