我有字段endTime有DateTime数据类型和状态(int)。如果endTime的小时和分钟等于当前时间的小时和分钟,我想将状态字段从1更新为0。这一天完全一样。所以这一天无所谓。
我该怎么办?
答案 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上的工作方式。