1

Tuser の認証コードが null でない場合、ユーザーが 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)

戻るために1日を減算する場合は、正の日数を減算する必要があることに注意してください。負の日数を引くと、早い時間ではなく、遅い時間になります。

于 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 に答える