我想更新行的时间是5分钟前(或超过5分钟)的SQL:
UPDATE mytable SET status='EXPIRED'
WHERE (a column's time is 5 minutes or longer before now)
我尝试使用DATE_ADD(NOW(), INTERVAL 5 MINUTE)
,但我没有运气!
答案 0 :(得分:1)
不确定,但考虑到您的时间列属于DATETIME
,您可以使用BETWEEN
运算符,如下所示
UPDATE mytable SET status='EXPIRED'
WHERE your_time_column BETWEEN DATE_ADD(NOW(), INTERVAL -5 MINUTE) AND DATE_ADD(NOW(), INTERVAL 5 MINUTE)
答案 1 :(得分:1)
您可以将now()
与行的日期列加5分钟进行比较:
UPDATE mytable
SET status = 'EXPIRED'
WHERE DATE_ADD(date_col, INTERVAL 5 MINUTE) <= NOW()
答案 2 :(得分:1)
一种典型的方法是使用sizeof(std::size_t): 8
ofstream on "c:/4294967294.tst" size 4294967294
is_open: true
good: true
bad: false
eof: false
fail: false
error: No error
lastError: ""
ofstream on "c:/4294967295.tst" size 4294967295
is_open: false
good: false
bad: false
eof: false
fail: true
error: No error
lastError: ""
ofstream on "c:/4294967294.tst" size 4294967294
is_open: true
good: true
bad: false
eof: false
fail: false
error: No error
lastError: ""
ofstream on "c:/4294967295.tst" size 4294967295
is_open: true
good: true
bad: false
eof: false
fail: false
error: No error
lastError: ""
:
date_sub()
您也可以使用负数单位的UPDATE mytable
SET status = 'EXPIRED'
WHERE <columntime> < date_sub(now(), interval 5 minute);
。此外,您应该将函数调用放在date_add()
而不是列上,这样MySQL就可以利用列上的索引(如果适用)。