MySQL查询以下内容应该是什么?

时间:2013-03-14 06:48:42

标签: php mysql

我希望在仪表板上显示即将到来的生日记录。我有MySQL表'联系人'

有字段dob (DATE YYYY-MM-DD)。我希望在生日快到之前检索所有记录

在接下来的15天内。例如:生日是1986-03-24应该是结果。

3 个答案:

答案 0 :(得分:6)

查看MySQL DATE_ADDINTERVAL

通过使用以下两者,您可以获得未来15天内的记录。

SELECT * FROM user WHERE dob BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 15 DAY)

用于分娩比较。

MAKEDATE(YEAR(NOW() + INTERVAL 15 DAY), DAYOFYEAR(birthday)) BETWEEN CURDATE() AND CURDATE() + INTERVAL 15 DAY

答案 1 :(得分:0)

您必须将mysql查询中的日期用作:

 SELECT FROM table_name WHERE timestamp_row BETWEEN 
    '2011-01-01 00:00:00' AND '2011-01-02 23:59:59';

你正在做用户的B'Day日期,因此希望这可以做格式化和选择日期的技巧

select id from my_table
 where
 timestamp < date_format(date_add(CURRENT_TIMESTAMP(), interval 1 day),
         '%Y%m%d000000' ) AND timestamp >=  date_format(CURRENT_TIMESTAMP(),
         '%Y%m%d000000')

也可以这样做

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

答案 2 :(得分:0)

您可以使用此查询。试试

SELECT * FROM TableName
WHERE REPLACE(BirthDate, DATEPART(YEAR, BirthDate), DATEPART(YEAR, GETDATE())) BETWEEN GETDATE() AND DATEADD(DAY, 15, GETDATE())