私は自動リスト Web サイトに取り組んでおり、日付を正しく取得する方法の背後にあるロジックに行き詰まっています。
データベース用のSQLフィドルを作成しました http://www.sqlfiddle.com/#!2/e111e/3
毎日午前 12 時に cron を実行したいのですが、1 日で期限切れになるリストのユーザーにメールを送信したい (既に期限切れになっているリストは無視します) が、最低限のことを伝えたいので、それらの間には 24 時間の差が必要ですそこのリストが期限切れになる24時間前。また、1 日以内に有効期限が切れるリストのみを選択する必要があります。
これが私がこれまでに試したことです
SELECT DATE_FORMAT(expiry_date, '%b %d %Y %T') AS expiry_date, DATEDIFF(expiry_date, NOW()) AS days_left FROM `test` WHERE DATEDIFF(expiry_date, NOW()) = 1
しかし、24 時間以内に期限切れになるものも選択しています。
それを手伝ってください。
編集 ///////////////////////////////////////////////// //////////////
私はこれを理解しました。それが正しいかどうか教えてください。
SELECT DATE_FORMAT(expiry_date, '%b %d %Y %T') AS expiry_date, DATEDIFF(expiry_date, NOW()) AS days_left, HOUR(TIMEDIFF(expiry_date, NOW())) as hours FROM `test`
WHERE DATEDIFF(expiry_date, NOW()) = 1 AND HOUR(TIMEDIFF(expiry_date, NOW())) > 24