SELECT * 
FROM table
WHERE time 
BETWEEN (curdate( ) - INTERVAL 10 DAY ) AND curdate( )

解决方案 »

  1.   

    curdate( ) 
    不明白啊,为什么我执行的时候不会显示呢?
      

  2.   

    你是什么意思?是想取出所有快过生日的用户,还是在用户登录时通知他快过生日了?
    如果是第一种
    select * from table where (to_days(time)-to_days(now()))<=10如果是第二种,从数据库中取出该用户的生日资料保存在变量中,这里假设变量为$birth
    $birth="1982-04-22";
    $arr = explode('-', $birth);
    $ustamp = mktime(0,0,0,$arr[1],$arr[2],$arr[0]);
    $left_days = ($ustamp - time())/(60*60*24);
    if ($left_days <= 10)
      echo "你的生日还有".$left_days."天了";
      

  3.   

    我的意思是这样的
    我的数据里有个timee,设为date型里面的记录有1982-04-15的数据记录
    而今天是4-13日,
    我做一个数据库查询,查出从今天开始10天内有过生日的人。
      

  4.   

    1、首先用to_days是不对的,to_days返回日期从0年的天数
    2、
    MONTH(date) 返回date的月份,范围1到12
    DAYOFMONTH(date) 返回date的月份中日期,在1到31范围内
    3、于是条件
    MONTH(date)=MONTH(now()) and (DAYOFMONTH(date)-DAYOFMONTH(now()))<=10 
    4、php处理
    date("md",strtotime(date))-date("md") <= 10
    5、上面算法未包括跨月,请自行扩展
      

  5.   

    学习,学习,不过我建议最好用unix时间形式,那样只要注意一点点就可以了,便于运算些
      

  6.   

    哎,这样就更加郁闷了,里面已有几千用户了,对了,unix时间形式,在存储只需要月日是如何写的