Mysql所有年份的生日查询

Mysql所有年份的生日查询,mysql,Mysql,我有一个客户表,我想筛选生日在给定日期范围内的所有客户,比如说1月1日和3月15日。 我一直在尝试使用: (天(生日)>=01和月(生日)>=01)和(天(生日)您可以将案例与一起使用,其中,例如: WHERE CASE WHEN MONTH(birthday) BETWEEN 1 AND 2 THEN DAY(birthday) BETWEEN 1 AND 31 WHEN MONTH(birthday) = 3 THEN DAY(birthday) BETWEEN 1 A

我有一个客户表,我想筛选生日在给定日期范围内的所有客户,比如说1月1日和3月15日。 我一直在尝试使用:


(天(生日)>=01和月(生日)>=01)和(天(生日)您可以将
案例
一起使用,其中
,例如:

WHERE
  CASE 
    WHEN MONTH(birthday) BETWEEN 1 AND 2 THEN DAY(birthday) BETWEEN 1 AND 31
    WHEN MONTH(birthday) = 3 THEN DAY(birthday) BETWEEN 1 AND 15
    ELSE FALSE
  END

您可以将
CASE
WHERE
一起使用,例如:

WHERE
  CASE 
    WHEN MONTH(birthday) BETWEEN 1 AND 2 THEN DAY(birthday) BETWEEN 1 AND 31
    WHEN MONTH(birthday) = 3 THEN DAY(birthday) BETWEEN 1 AND 15
    ELSE FALSE
  END
您还可以使用获取一年中的天数,因此1月1日是第1天,8月1日是第213天

这将完全忽略这一年

SELECT * 
FROM `table` 
WHERE DayOfYear(`birthday`)
BETWEEN DayOfYear('01-01-01') AND DayOfYear('2200-03-15')
发现:

您还可以使用获取一年中的天数,因此1月1日是第1天,8月1日是第213天

这将完全忽略这一年

SELECT * 
FROM `table` 
WHERE DayOfYear(`birthday`)
BETWEEN DayOfYear('01-01-01') AND DayOfYear('2200-03-15')
发现: