我将我的用户的生日以Unix时间戳格式(整数)存储在MySQL数据库中。
现在我想给用户发一封电子邮件,告诉他们的生日是30天后。
我知道下面的SQL代码是选择今天是谁生日的用户:
SELECT * FROM members WHERE
DATE_FORMAT(FROM_UNIXTIME(birthday),'%m-%d') = DATE_FORMAT(NOW(),'%m-%d')
但是我不知道如何改变它来达到我的目的。
我搜索了太多,在SO上发现了这个类似的问题,但是所有的答案都是基于日期格式化的生日,而我的生日字段是基于timeStamp由time()创建的。你有什么解决办法吗?
您可以使用datediff
函数:
SELECT *
FROM members
WHERE DATEDIFF(FROM_UNIXTIME(birthday), NOW()) <= 30