【发布时间】:2013-02-05 09:55:05
【问题描述】:
我正在开发一个自动列表网站,但我陷入了如何获取正确日期背后的一些逻辑。
我为数据库创建了一个 sql fiddle http://www.sqlfiddle.com/#!2/e111e/3
我想每天上午 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`
在哪里 DATEDIFF(expiry_date, NOW()) = 1 AND HOUR(TIMEDIFF(expiry_date, NOW())) > 24
【问题讨论】:
标签: mysql sql database datetime