oracle 獲取某一個時間段內中間含有哪幾個月

(1)不含開始日期,含結束日期

SELECT to_char(add_months(to_date(SUBSTR('2016-11-01',0,7),'yyyy-mm'),ROWNUM),'YYYY-MM')AS vc_month

FROM all_objects WHERE ROWNUM <=

(SELECT months_between(to_date(SUBSTR('2017-11-31',0,7),'YYYY-MM'),to_date(SUBSTR('2016-11-01',0,7),'YYYY-MM'))  FROM dual);

效果



(2)含開始日期,不含結束日期

SELECT to_char(add_months(to_date(SUBSTR('2016-11-01',0,7),'yyyy-mm'),ROWNUM-1),'YYYY-MM')AS vc_month

FROM all_objectsWHERE ROWNUM <=

(SELECT months_between(to_date(SUBSTR('2017-11-31',0,7),'YYYY-MM'),to_date(SUBSTR('2016-11-01',0,7),'YYYY-MM'))FROM dual)

效果


(3) 含開始日期,含結束日期

SELECT to_char(add_months(to_date(SUBSTR('2016-11-01',0,7),'yyyy-mm'),ROWNUM-1),'YYYY-MM')AS vc_month

FROM all_objects WHERE ROWNUM <=

(SELECT months_between(to_date(SUBSTR('2017-11-31',0,7),'YYYY-MM'),to_date(SUBSTR('2016-11-01',0,7),'YYYY-MM'))+1FROM dual)

結果


(4)不含開始日期,結束日期多一個月

SELECT to_char(add_months(to_date(SUBSTR('2016-11-01',0,7),'yyyy-mm'),ROWNUM),'YYYY-MM')AS vc_month

FROM all_objectsWHERE ROWNUM <=

(SELECT months_between(to_date(SUBSTR('2017-11-31',0,7),'YYYY-MM'),to_date(SUBSTR('2016-11-01',0,7),'YYYY-MM'))+1FROM dual)

結果







發佈了149 篇原創文章 · 獲贊 32 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章