gpt4 book ai didi

mysql - 查询选择特定日期之前的天数

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:29 24 4
gpt4 key购买 nike

要么我的大脑没有按照今天应有的方式运作,要么这实际上是一件很难做到的事情。

我有下表包含我的用户。

id    | name     | birthdate     |
------+----------+------------
1 | John | 1990-08-27
2 | Jane | 1985-08-29
3 | Joe | 1985-08-31

birthdate 是上表中的 date 列。

我想获取今天或前几天(包括周末)过生日的用户。

我只是进行了以下尝试:

SELECT
*
FROM users
WHERE (DATE_FORMAT(users.birthdate, '%d-%m') IN (
'29-08',
'28-08',
'27-08',
'26-08'
)

你们能帮我解答一下吗?

最佳答案

这个查询应该做你想做的。首先,它将用户的生日转换为当前年份:

STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE()), DATE_FORMAT(birthdate, '-%m-%d')), '%Y-%m-%d')

然后它查看该日期是否在今天 (CURRENT_DATE()) 和上周六之间:

CURRENT_DATE() - INTERVAL (WEEKDAY(CURRENT_DATE()) - 5 + 7) % 7 DAY

完整查询:

SELECT *
FROM users
WHERE STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE()), DATE_FORMAT(birthdate, '-%m-%d')), '%Y-%m-%d') BETWEEN
CURRENT_DATE() - INTERVAL (WEEKDAY(CURRENT_DATE()) - 5 + 7) % 7 DAY AND CURRENT_DATE()

SQLFiddle Demo

关于mysql - 查询选择特定日期之前的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52072049/

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