请看手册 http://dev.mysql.com/doc/refman/5.1/zh/functions.html#date-and-time-functions12.5. 日期和时间函数
本章论述了一些可用于操作时间值的函数。关于每个时间和日期类型具有的值域及指定值的有效格式,请参见11.3节,“日期和时间类型”。下面的例子使用了时间函数。以下询问选择了最近的 30天内所有带有date_col 值的记录: mysql> SELECT something FROM tbl_name    -> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;注意,这个询问也能选择将来的日期记录。  

解决方案 »

  1.   

    1.我要查询2周之内的记录 
    2.我要查询14天之内的记录 
    3.我要查询14天以外的记录 1、select * from tablename where time_field <=date_sub(now(),interval 14 day);
    2、select * from tablename where time_field <=date_sub(now(),interval 14 day);
    3、select * from tablename where time_field >=date_add(now(),interval 14 day);
      

  2.   

    我认为还是按字串查询起来节省效率,
    DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col是常规做法
      

  3.   

    1.我要查询2周之内的记录
    两周之内的理解应该是上星期一到这星期天,不管是星期几SELECT * FROM `tablename` WHERE DATE_FORMAT( `mydate`, '%u' ) BETWEEN ( DATE_FORMAT( NOW(), '%u')-1 ) AND DATE_FORMAT( NOW(), '%u')
     
    该语句未考虑到跨年问题
      
    2.我要查询14天之内的记录   
     SELECT * FROM `tablename` WHERE TO_DAYS( `mydate` ) >= ( TO_DAYS( NOW() ) - 14 )
    3.我要查询14天以外的记录  SELECT * FROM `tablename` WHERE TO_DAYS( `mydate` ) < ( TO_DAYS( NOW() ) - 14 )
      

  4.   

    假设置你的日期字段名为mydate,类型为date型(YYYY-mm-dd)