我希望在仪表板上显示即将到来的生日记录。我有MySQL表'联系人'
有字段dob (DATE YYYY-MM-DD)
。我希望在生日快到之前检索所有记录
在接下来的15天内。例如:生日是1986-03-24应该是结果。
答案 0 :(得分:6)
查看MySQL DATE_ADD
和INTERVAL
。
通过使用以下两者,您可以获得未来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())