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

时间:2015-01-19 03:10:35

标签: sql sql-server-2008 datetime-format

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

我该怎么办?

3 个答案:

答案 0 :(得分:1)

您可以使用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);

答案 1 :(得分:0)

试试这个:

UPDATE <TABLE> 
SET STATUS = 1
WHERE MINUTE(GETDATE()) = MINUTE(ENDTIME)
   AND HOUR(GETDATE()) = HOUR(ENDTIME)

答案 2 :(得分:0)

UPDATE <table> SET status = 0
WHERE datepart(hour, endTime) = datepart(hour,getdate())
AND datepart(minute, endTime) = datepart(minute,getdate());

这是我在SQL-Server 2008上的工作方式。