Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择其(时间戳)生日晚X天的用户_Php_Mysql_Sql_Select_Date Arithmetic - Fatal编程技术网

Php 选择其(时间戳)生日晚X天的用户

Php 选择其(时间戳)生日晚X天的用户,php,mysql,sql,select,date-arithmetic,Php,Mysql,Sql,Select,Date Arithmetic,我在MySQL数据库中以Unix时间戳格式(整数)存储用户的生日 现在我想向用户发送一封电子邮件,告诉他们他们的生日是30天后 我知道下面的SQL代码用于选择今天生日的用户: SELECT * FROM members WHERE DATE_FORMAT(FROM_UNIXTIME(birthday),'%m-%d') = DATE_FORMAT(NOW(),'%m-%d') 但我不知道如何改变我的目的 我在Google上搜索了太多内容,在SO上找到了答案,但所有答案都基于日期格式化的生日,

我在MySQL数据库中以Unix时间戳格式(整数)存储用户的生日

现在我想向用户发送一封电子邮件,告诉他们他们的生日是30天后

我知道下面的SQL代码用于选择今天生日的用户:

SELECT * FROM members WHERE 
DATE_FORMAT(FROM_UNIXTIME(birthday),'%m-%d') = DATE_FORMAT(NOW(),'%m-%d')
但我不知道如何改变我的目的

我在Google上搜索了太多内容,在SO上找到了答案,但所有答案都基于日期格式化的生日,而我的生日字段则基于时间()创建的时间戳

您有什么解决方案吗?

您可以使用以下功能:

SELECT * 
FROM   members 
WHERE  DATEDIFF(FROM_UNIXTIME(birthday), NOW()) <= 30
选择*
来自成员

WHERE DATEDIFF(FROM_UNIXTIME(birthday),NOW())我运行了这段代码,但出现了这个错误:函数DATE_DIFF没有运行exist@ahmad那是个愚蠢的打字错误,对不起。它应该是
datediff
,而不是
date\u diff
(编辑并固定)。是的,它工作正常。当然,因为我想选择的用户的生日正好是30天后,所以必须user=operator而不是