现有table user,包含一个出生日期字段,类型为date,其数据格式为yyyy-mm-dd.现在要从当前日期开始向后推算查询最近7天都有哪些人过生日。                    请各位帮忙.

解决方案 »

  1.   

    可以通过当前日期建立一个新的日期,而这个新的日期就是当前日期后面的第七天,然后在SQL语句中加入条件:between 当前日期 and 新的日期
      

  2.   

    select * from user where date_sub(curdate(),interval 7 day) <=你的日子字段;
      

  3.   

    select * from user where date_sub(curdate(),interval 7 day) <=你的日子字段
      

  4.   

    错了,是查询生日生日期为最近7天的sql
      

  5.   

    想不出什么好办法,用个笨点的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日出生的这类特殊的人了,否则的话,你还得分析今年是否是闰年来确定是否有他们的生日存在
      

  6.   

    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')
      

  7.   

    不可以用>=或者<=来判断,如果碰到跨年的时候,就要错误了
    如果今天12月31日,那么未来7天就是1月7日,这样的话12-31是>01-07的