当 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))
当 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))
通过测试并让我们知道它是否有效,您可以更好地确定它是否正确。
但我可以告诉你,它比它需要的更复杂。您可以像这样直接比较日期:
... where date(now()) > date_sub(created_date, interval 1 day)
请注意,如果您要减去一天以返回,则应减去正数天数。减去负的天数是指时间较晚,而不是较早。
我得到了完美的删除,它运行良好:
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 小时的行的创建日期进行比较来删除行。