现在有一句SQL:
SELECT orderDate FROM T_ORDER WHERE ORDER_STATUS=1 AND TRADE_TYPE=4 AND TRADE_WAY=1
结果返回一列orderDate(DateTime类型)。
现在我要写一个作业,每五分钟执行一次。作业执行条件是:给orderDate这一列的数据加30分钟然后与现在的时间做对比,如果超出了当前时间,那么就执行一个Update语句。在线等~
SELECT orderDate FROM T_ORDER WHERE ORDER_STATUS=1 AND TRADE_TYPE=4 AND TRADE_WAY=1
结果返回一列orderDate(DateTime类型)。
现在我要写一个作业,每五分钟执行一次。作业执行条件是:给orderDate这一列的数据加30分钟然后与现在的时间做对比,如果超出了当前时间,那么就执行一个Update语句。在线等~
and dateadd(mi,30,orderDate)>getdate())
begin
update...
end
update tb set ...where exists(select 1 from T_ORDER WHERE ORDER_STATUS=1 AND TRADE_TYPE=4 AND TRADE_WAY=1
and dateadd(minute,30,orderDate)>getdate())
WHERE
exists(select 1 from T_ORDER WHERE ORDER_STATUS=1 AND TRADE_TYPE=4 AND TRADE_WAY=1
and dateadd(Hour,2,orderDate)>getdate())为什么我这样写不对,他把数据库的ORDER_STATUS字段全部更新成4了。悲剧~
UPDATE T_ORDER SET ORDER_STATUS=4
WHERE ORDER_STATUS=1 AND TRADE_TYPE=4 AND TRADE_WAY=1
and dateadd(Hour,2,orderDate)>getdate())