我如何使用MYSQL和PHP获得本周,本月和下个月庆祝生日的朋友的生日?

时间:2009-09-28 10:46:26

标签: php mysql

我目前正在一个网站上工作,需要在本周,本月和下个月使用MYSQL和PHP庆祝他们的生日。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

如果您在MySQL中以DATE(或DATETIME)格式存储生日,您可以使用以下查询:

// This week
SELECT * FROM person WHERE WEEK( birthdate ) = WEEK( NOW() )

// This month
SELECT * FROM person WHERE MONTH( birthdate ) = MONTH( NOW() )

// Next month

SELECT * FROM person WHERE MONTH(birthdate)= MONTH(NOW())+ 1;

SELECT * FROM person WHERE IF
  ( MONTH( NOW() ) < 12, MONTH( birthdate ) = MONTH( NOW() ) + 1,
  MONTH( birthdate ) = 1)

答案 1 :(得分:0)

SELECT  *
FROM    users
WHERE   birthday + INTERVAL YEAR(CURRENT_DATE) - YEAR(birthday) YEAR BETWEEN CURRENT_DATE AND CURRENT_DATE + INTERVAL 3 DAY

请注意,这种情况不易受到影响,需要完整的独立扫描。

SQL ServerOraclePostgreSQL中,可以使用此方法进行改进:

,但MySQL缺乏生成随机结果集的方法。

但是,您可以创建一个虚拟表,并在其中存储从19002100的年份。

添加cron任务以在2100中更新它,因为您可以轻易忘记:)