1

当 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))
4

2 回答 2

2

通过测试并让我们知道它是否有效,您可以更好地确定它是否正确。

但我可以告诉你,它比它需要的更复杂。您可以像这样直接比较日期:

... where date(now()) > date_sub(created_date, interval 1 day)

请注意,如果您要减去一天以返回,则应减去正数天数。减去负的天数是指时间较晚,而不是较早。

于 2012-06-13T14:10:04.233 回答
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 小时的行的创建日期进行比较来删除行。

于 2012-06-19T10:16:03.263 回答