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')));
          發現別人一種寫法更好  回復  更多評論
            

          主站蜘蛛池模板: 梅河口市| 洪江市| 赞皇县| 尚志市| 河曲县| 大英县| 政和县| 腾冲县| 岳普湖县| 五河县| 溆浦县| 喜德县| 高雄县| 芜湖市| 凭祥市| 昭平县| 龙门县| 宣恩县| 滕州市| 长乐市| 扬州市| 巢湖市| 黑龙江省| 乌苏市| 汕尾市| 济宁市| 辽宁省| 宁强县| 玉环县| 镇坪县| 深圳市| 偏关县| 社旗县| 呼和浩特市| 山东省| 葵青区| 如东县| 巨野县| 息烽县| 安宁市| 阿克苏市|