sql-server - 日期时间比较更新两列

标签 sql-server datetime comparison

当新作业添加到数据库时,我有一个由 SQL Server 创建的日期时间。作业添加到数据库后 3 小时且尚未完成,应更改具有唯一作业 ID 的作业的日志级别和状态。

这就是我到目前为止所拥有的。 (不检查状态)

use DistributedComputing
if exists (select * from sys.objects where type = 'P' and name = 'proc_dc_timeout')
drop procedure proc_dc_timeout
go
create procedure proc_dc_timeout
AS
declare @JobID int
begin
if exists (select StartDate from Job where JobID = @JobID and DATEDIFF(hh,StartDate,GETDATE()) > 3 )
update Job
set LogLevel = 1, Status = 'error'
end

go
execute proc_dc_timeout

但是如果我运行查询,则不会影响任何行。请帮忙

最佳答案

您的变量@JobID已声明,但未设置 - 因此 - 您的IF语句永远不会成功,因为任何与NULL值的比较都将返回false。您需要将值分配给变量,或者使用 IS NULL 比较

关于sql-server - 日期时间比较更新两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9296370/

相关文章:

mysql - 统一多种日期格式的简单方法?

.net - Net DateTime.AddMonths(1) 与 Javascript d.setMonth(d.getMonth() + 1) 的工作方式不同

Java char 比较似乎不起作用

sql-server - 如何从域管理员那里保护 SQL 数据库?

mysql - 如何使用 GROUP_CONCAT 将 MySQL 查询正确转换为 MSSQL 查询

datetime - Flutter - 将分钟转换为 H :M

algorithm - 检查打印错误/比较字符串

sql - 选择两个字段具有不同值的行

sql - 在 Microsoft SQL Server 2005 中模拟 group_concat MySQL 函数?

python - Python 与其他脚本语言相比如何?