建立1个字段,每当插入1个记录时就插入当前时间,比如字段time.
select field from table where (curdate()-time)<=30;

解决方案 »

  1.   

    看错不好意思
    select field from table where (curdate()-time)>30;
      

  2.   

    curdate()是取当前时间截的日数?
      

  3.   

    ADDDATE(date,INTERVAL 1 MONTH )<NOW()
      

  4.   

    有一条记录的date值为1070587078(即2003年12月05日 09时17分),然后我把时间调到2004-01-7日.
    语句:select * from send_record where (curdate()-date)>30
    语句:select * from send_record where ADDDATE(date,INTERVAL 1 MONTH )<NOW()
    记录都不显示???
      

  5.   

    你要把unix时间用时间函数转化成标准的时间在进行查询
      

  6.   

    select * from send_record where date < DATE_ADD(NOW(),INTERVAL '-1' MONTH )
      

  7.   

    你把事情弄复杂了,你使用了int类型保存日期而不是用datetime类型。这样强大的mysql日期处理函数就不能直接使用了。不过你可以用form_unixtime转换一下。
    select FROM_UNIXTIME(1070587078),ADDDATE(FROM_UNIXTIME(1070587078),INTERVAL 1 MONTH)使用int类型保存日期,取得的结果如用php进行处理当然可以。但是对每一个都要处理一下,开销是可想而知的。而使用mysql日期处理函数得到的已是处理好的结果直接使用即可。运行时:mysql是编译后的机器指令直接执行,而php是伪编译指令解释执行。明显的前者的效率高于后者。