当Tuser中的身份验证代码不为空时,表示用户未在24小时内登录该网站,因此我必须删除这些行。
这是我写的查询,但没有正确删除
DELETE FROM tusers WHERE auth_code IS NOT NULL
AND auth_code !=''
AND STR_TO_DATE(NOW(),'%Y-%m-%d %T')
> (DATE_SUB(STR_TO_DATE(created_date,'%Y-%m-%d %T'),INTERVAL -1 DAY))
答案 0 :(得分:2)
通过测试并让我们知道它是否有效,您可以更好地确定它是否正确。
但我可以告诉你,它比它需要的更复杂。您可以直接比较日期:
... where date(now()) > date_sub(created_date, interval 1 day)
请注意,如果您要减去一天以便返回,则应减去正数天数。减去负天数是指时间较晚,而不是更早。
答案 1 :(得分:1)
我得到了完美的删除工作:
DELETE FROM tusers WHERE auth_code IS NOT NULL AND auth_code !=''
AND DATE_SUB(NOW() , INTERVAL 24 HOUR) > STR_TO_DATE(created_date,'%Y-%m-%d %T');
此查询通过将系统的当前日期与达到当前日期24小时以上的行的创建日期进行比较来删除行。