表里有个createime  格式是2012-11-11 12:30:25  1   想查出2011-11-10    和 2011-12-11之间的数据   穿进去的是字符
2   想查出某一个月的数据,穿进去的也是字符   
小白一个  求解 

解决方案 »

  1.   

    SELECT * 
    FROM `tablename` ct
    WHERE ct.column_date 
    BETWEEN STR_TO_DATE('2012-07-20','%Y-%m-%d %H:%i:%s') 
    AND STR_TO_DATE('2012-12-31','%Y-%m-%d %H:%i:%s');
      

  2.   

    上面这个可能不太对,应该是这样:
    SELECT * 
    FROM `count_everyday` ct
    WHERE ct.createDate>=STR_TO_DATE('2012-07-20','%Y-%m-%d %H:%i:%s') 
    AND ct.createDate<STR_TO_DATE('2012-12-30','%Y-%m-%d %H:%i:%s') + INTERVAL 1 DAY;
      

  3.   

    至于查某月的数据,应该直接like就可以
      

  4.   

    1 想查出2011-11-10 和 2011-12-11之间的数据 穿进去的是字符
    SELECT * FROM TT WHeRE DATE_FORMAT(createime,'%Y-%m-%d') between 
    '2011-11-10' and '2011-12-11'orSELECT * FROM TT WHeRE DATE(createime) between 
    '2011-11-10' and '2011-12-11'2 想查出某一个月的数据,穿进去的也是字符  
    SELECT * FROM TT WHeRE ,month(createime)=0+你需要的月
      

  5.   

    2 想查出某一个月的数据,穿进去的也是字符   
    SELECT * FROM TT WHeRE month(createime)=0+你需要的月
      

  6.   

    SELECT * FROM TT WHeRE DATE_FORMAT(createime,'%Y-%m')='2011-11'
      

  7.   

    SELECT * FROM tablename where column_date LIKE '%2011-11%'这样不行么
      

  8.   

    大神,between and 是否是全闭区间,这么用能行么?
      

  9.   

    根据需求自行修改一下
    SELECT * FROM TT WHeRE DATE_FORMAT(createime,'%Y-%m-%d')>'2011-11-10' and 
    DATE_FORMAT(createime,'%Y-%m-%d')<'2011-12-11'
      

  10.   

    1 想查出2011-11-10 和 2011-12-11之间的数据 穿进去的是字符select * from 表 where createime between '2011-11-10' and concat('2011-12-11',' 23:59:59');
      

  11.   

    between '开始时间' and '结束时间'