我一直在尝试使用 mysql 语句和 php 获取即将到来的生日。问题是我见过一些解决方案,但它们使用日期字段。不幸的是,我的存储为时间戳。如果生日在 1970 年之后,下面的代码只会产生结果。我怎样才能得到一个查询,该查询将给我即将到来的生日的当前月份、下个月、下个月等等?我怎样才能让它也忽略年份?
$sql_query = "
SELECT mem_id, DATE_FORMAT(FROM_UNIXTIME( birthdate ),'%d/%m/%Y')
)
FROM profiles
WHERE
IF ( MONTH( NOW() ) < 12,
MONTH( DATE_FORMAT(FROM_UNIXTIME( birthdate ),'%Y%m%d') ) = MONTH( NOW() ) + 1,
MONTH( DATE_FORMAT(FROM_UNIXTIME( birthdate ),'%Y%m%d') ) = 1)
ORDER BY birthdate";
最佳答案
我一直在搜索这段代码,但找不到干净/简单的查询(也适用于闰年(2 月 29 日问题))
所以我自己做了。
这是获取接下来 x 天即将到来的生日的最简单代码,(此查询还显示昨天的生日(或者您可以将其更改为过去的 x 天数)
SELECT name, date_of_birty FROM users WHERE
DATE(CONCAT(YEAR(CURDATE()), RIGHT(date_of_birty, 6)))
BETWEEN
DATE_SUB(CURDATE(), INTERVAL 1 DAY)
AND
DATE_ADD(CURDATE(), INTERVAL 5 DAY)
关于php - 获取即将到来的生日 Mysql 和 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3783286/