一个比较复杂的问题table:
id t t2 a
1 2009-09-23 18:00:00 16:00:35 16
2 2009-09-23 16:32:45 12:23:43 18
3 2009-09-23 23:59:58 09:12:22 20
执行一个update, 例如where id=1判断t2的时间加上a(16秒)后的时间是不是大于现在时间now()
如果小于等于现在时间now(),则把日期t加上a(16秒),同时把t2时间变成now()
如果大于现在时间now(),则日期t不变,t2也不变一条sql能实现么?
id t t2 a
1 2009-09-23 18:00:00 16:00:35 16
2 2009-09-23 16:32:45 12:23:43 18
3 2009-09-23 23:59:58 09:12:22 20
执行一个update, 例如where id=1判断t2的时间加上a(16秒)后的时间是不是大于现在时间now()
如果小于等于现在时间now(),则把日期t加上a(16秒),同时把t2时间变成now()
如果大于现在时间now(),则日期t不变,t2也不变一条sql能实现么?
set t=DATE_ADD(t,INTERVAL a SECOND),
t2=now()
where DATE_ADD(t2,INTERVAL a SECOND)<=NOW();
,
t=if(addtime(t2,'00:00:16')>time(now()),t,DATE_ADD(t,INTERVAL 16 SECOND))
where id=1
,
t=DATE_ADD(t,INTERVAL 16 SECOND))
where id=1 and addtime(t2,'00:00:16')<=time(now())
,
t=DATE_ADD(t,INTERVAL 16 SECOND)
where id=1 and addtime(t2,'00:00:16') <=time(now())
因为 where 条件判断已经用来选取数据了.如果再加个时间判断,取得就不一样了
至于选取到的数据,在用if来进一步处理.多谢了