查询出生日期为最近7天的sql

yuwenxia 2007-03-12 03:51:32
现有table user,包含一个出生日期字段,类型为date,其数据格式为yyyy-mm-dd.现在要从当前日期开始向后推算查询最近7天都有哪些人过生日。 请各位帮忙.
...全文
549 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
klan 2007-03-14
  • 打赏
  • 举报
回复
不可以用>=或者<=来判断,如果碰到跨年的时候,就要错误了
如果今天12月31日,那么未来7天就是1月7日,这样的话

12-31是>01-07的
klan 2007-03-13
  • 打赏
  • 举报
回复
想不出什么好办法,用个笨点的

select * from table1
where DATE_FORMAT(birthday,'%m-%d')= DATE_FORMAT(now(),'%m-%d') or
where DATE_FORMAT(birthday,'%m-%d')= DATE_FORMAT(date_add(now(), interval 1 day),'%m-%d') or
where DATE_FORMAT(birthday,'%m-%d')= DATE_FORMAT(date_add(now(), interval 2 day),'%m-%d') or
...
where DATE_FORMAT(birthday,'%m-%d')= DATE_FORMAT(date_add(now(), interval 7 day),'%m-%d')

不过这样有点好处,你可以不用考虑2月29日出生的这类特殊的人了,否则的话,你还得分析今年是否是闰年来确定是否有他们的生日存在
cow977 2007-03-13
  • 打赏
  • 举报
回复
DATE_FORMAT(birthday,'%m-%d')>= DATE_FORMAT(now(),'%m-%d')
and
DATE_FORMAT(birthday,'%m-%d')<= DATE_FORMAT(date_add(now(), interval 7 day),'%m-%d')
yuwenxia 2007-03-12
  • 打赏
  • 举报
回复
错了,是查询生日生日期为最近7天的sql
stephen0126 2007-03-12
  • 打赏
  • 举报
回复
select * from user where date_sub(curdate(),interval 7 day) <=你的日子字段
specialjuly 2007-03-12
  • 打赏
  • 举报
回复
楼上正解..
懒得去死 2007-03-12
  • 打赏
  • 举报
回复
select * from user where date_sub(curdate(),interval 7 day) <=你的日子字段;
zjntche_cn 2007-03-12
  • 打赏
  • 举报
回复
可以通过当前日期建立一个新的日期,而这个新的日期就是当前日期后面的第七天,然后在SQL语句中加入条件:between 当前日期 and 新的日期

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧