当用户未在24小时内登录时,从Tuser中删除用户

时间:2012-06-13 14:02:41

标签: php mysql zend-framework

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

2 个答案:

答案 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小时以上的行的创建日期进行比较来删除行。