请教个关于oracle 中SQL数据查询的问题;
情况如下:我想按日期查询,但是表中“年”“月”“日”是分开在3个字段存储的,请问怎么写这个sql查询语句,比较好?
我用的数据库是oracle
哪位知道,恳请帮忙指点下。谢谢。

解决方案 »

  1.   

    我记得ORACLE里面的字符串连接是用 '||'时间的转换这些用to_char
      

  2.   

    -- 例如:查2010年9月1日到2011年11月30日(含2011年11月30日)的数据:
    select * from tb_name
    where to_date(year_col||lpad(month_col,'0',2)||lpad(day_col,'0',2),'yyyymmdd')>=to_date('20100901','yyyymmdd')
    and to_date(year_col||lpad(month_col,'0',2)||lpad(day_col,'0',2),'yyyymmdd')<to_date('20111201','yyyymmdd');
      

  3.   

     搞定了  
    使用  lpad(month_col,2,0) lpad(列名,长度,要补充的值 )
    谢谢 各位  貌似我还发错区了
      

  4.   

    -- 嗯,呵呵,我lpad 参数位置颠倒啦!
    -- 例如:查2010年9月1日到2011年11月30日(含2011年11月30日)的数据:
    select * from tb_name
    where to_date(year_col||lpad(month_col,2,'0')||lpad(day_col,2,'0'),'yyyymmdd')>=to_date('20100901','yyyymmdd')
    and to_date(year_col||lpad(month_col,2,'0')||lpad(day_col,2,'0'),'yyyymmdd')<to_date('20111201','yyyymmdd');