我正在开发一个汽车列表网站,我被困在如何正确设置日期背后的一些逻辑上。
我为数据库 http://www.sqlfiddle.com/#!2/e111e/3创建了一个 sql fiddle
我想每天上午 12 点运行一个 cron,并且我想通过电子邮件向其列表将在一天内过期(忽略已经过期的列表)的用户发送电子邮件,但他们之间必须有 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