piliskys

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            25 隨筆 :: 0 文章 :: 40 評論 :: 0 Trackbacks
          問題:查出在2001年5年到2004年1月的所有年月格式為yyyymm(其實也是別人問到我這樣一個相關的問題)
          select to_char(to_date('200105','yyyymm'),'yyyy')+ b.bb||'00'+a.aa  ff
               
          from 
              (
          select level aa from dual connect by 1=1 and level <13 ) a, 
              (
          select level-1 bb from dual connect by 1=1 and level <=
              (to_char(to_date(
          '200402','yyyymm'),'yyyy'- to_char(to_date('200105','yyyymm'),'yyyy')+1)  ) b
              
          where  to_char(to_date('200105','yyyymm'),'yyyy')+ b.bb||'00'+a.aa  >='200105'
              
          and to_char(to_date('200105','yyyymm'),'yyyy')+ b.bb||'00'+a.aa  <='200402'

          不用其它表,就可以構造出一個時間表來,注意:connect by據說只支持oracle 9i 及以上
          posted on 2005-11-23 17:44 霹靂火 閱讀(519) 評論(1)  編輯  收藏 所屬分類: oracle數據庫

          評論

          # re: connect by構建時間段表 2005-11-24 09:51 霹靂火
          select * from (
          select to_char(add_months(to_date('200501','yyyymm'), rownum), 'yyyymm') from dual
          connect by rownum<months_between(to_date('200512','yyyymm'),to_date('200501','yyyymm')));
          發現別人一種寫法更好  回復  更多評論
            

          主站蜘蛛池模板: 博乐市| 集安市| 水富县| 安阳市| 阿坝县| 河东区| 晋宁县| 沛县| 凭祥市| 荔浦县| 定日县| 永泰县| 元氏县| 金华市| 清镇市| 钟山县| 金堂县| 望城县| 潮州市| 靖安县| 文昌市| 衢州市| 曲周县| 勐海县| 嫩江县| 华池县| 遂平县| 琼中| 开远市| 兴隆县| 滨州市| 元氏县| 柳江县| 塘沽区| 武夷山市| 开平市| 德江县| 嘉义市| 土默特左旗| 祁东县| 贵阳市|