我的数据表中年、月是分两个字段的,如果我想统计2012-01到2014-04之间的数据,应该如何写这个sql语句?

解决方案 »

  1.   


    -- 拼接 年 和月,用concat 函数,假定你的年是 4位,月为 2位,可用下面的语句。
    where concat(f_year , f_month) between '201401' and '201404'
      

  2.   

    select *
    from 数据表
    where 年*100+月 between 201201 and 201404
      

  3.   

    不知道这样的方案怎么样?
    建立索引 idx_year_month (year, month)查询语句:
    select * from  table_name  where year = 2012 and month >= 1
    union
    select * from  table_name  where year = 2013
    union
    select * from  table_name  where year = 20124 and month <= 4;
      

  4.   

    SELECT * FROM tab WHERE 年 BETWEEN 2012 AND 2013 AND 月 BETWEEN 01 AND 12 
    UNION ALL 
    SELECT * FROM tab WHERE 年 = 2014 AND 月 BETWEEN 1 AND 04 
      

  5.   

    SELECT * FROM tab WHERE 年 BETWEEN 2012 AND 2013 AND 月 BETWEEN 01 AND 12 
    UNION ALL 
    SELECT * FROM tab WHERE 年 = 2014 AND 月 BETWEEN 01 AND 04