gpt4 book ai didi

mysql - 改进查询以选择从现在起 x 天内的(出生)日期( future 和过去)

转载 作者:太空宇宙 更新时间:2023-11-03 11:09:10 25 4
gpt4 key购买 nike

我有一个包含字段生日(DATE) 的用户表。

目前,我像这样选择生日在当前日期之前或之后 7 天内的用户:

SELECT * FROM users
WHERE
DATE_FORMAT(birthday, '1980-%m-%d')
BETWEEN
DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 7 day), '1980-%m-%d')
AND
DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 7 day), '1980-%m-%d')

如您所见,考虑到通过伪造的 1980 年日期格式进行的比较,此查询并不是最精简的。此外,我相信这将无法在一年的最后一周和第一周左右正确选择生日用户。

虽然我看到了这方面的问题,但我仍在努力寻找解决方法。我可以做些什么来改进这个查询?

最佳答案

试试这个过滤器 -

WHERE
birthday + INTERVAL EXTRACT(YEAR FROM NOW()) - EXTRACT(YEAR FROM birthday) YEAR
BETWEEN CURRENT_DATE() - INTERVAL 7 DAY AND CURRENT_DATE() + INTERVAL 7 DAY

关于mysql - 改进查询以选择从现在起 x 天内的(出生)日期( future 和过去),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9819214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com