在mysql中查询生日在昨天的数据,需要先了解mysql中如何获取昨天的日期。
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS yesterday;
上面的语句可以获取昨天的日期,CURDATE()是获取当前日期的函数,DATE_SUB()是减去一个时间间隔的函数,INTERVAL 1 DAY表示减去一天。
获取到昨天的日期后,就可以用它来查询生日在昨天的数据了。
SELECT * FROM user WHERE DAYOFYEAR(birthday) = DAYOFYEAR(DATE_SUB(CURDATE(), INTERVAL 1 DAY));
上面的语句中,DAYOFYEAR()是获取一年中的第几天的函数,因此我们只需要比较用户生日的天数是否等于昨天的天数即可。
注意,上面的语句只能获取当年生日在昨天的数据,如果要查询所有年份生日在昨天的数据,需要使用YEAR()函数获取年份信息,如下:
SELECT * FROM user WHERE DAYOFYEAR(birthday) = DAYOFYEAR(DATE_SUB(CURDATE(), INTERVAL 1 DAY)) AND YEAR(birthday) <= YEAR(CURDATE());
以上是查询生日在昨天的方法,希望对大家有所帮助。