我有一个表,其中有生日,格式为yyyy-mm-dd。我的目标是,如果生日在未来7天内,则返回结果。
我需要它只使用月和日,因为如果它也读年,1993年的生日永远不会在接下来的7天内。它还需要考虑到月份的变化。
例如,如果是2月28日,而桌上的生日是3月1日,那将是7天之内,但不在同一个月之内。
SELECT * FROM user WHERE DATE_FORMAT(birthday, '%m-%d') >= DATE_FORMAT(NOW() - INTERVAL 7 DAY, '%m-%d')
我现在就在这里,但我知道我离这里很远。
最佳答案
您需要在where子句中设置两个日期的格式。
SELECT *
FROM user
WHERE DATE_FORMAT(birthday, '%m-%d') BETWEEN DATE_FORMAT(NOW(), '%m-%d') AND DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 7 DAY), '%m-%d')
关于mysql - 仅使用日期和月份选择接下来的7天,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42411513/