Oracle 列出日期範圍內的所有日期月份

2021-06-14 17:12:38 字數 1183 閱讀 1710

1、列出日期

已知開始日期和結束日期,如何用一條sql得出這個範圍內的所有日期。

eg:

已知:

2007/04/25      2007/05/02

得出:

2007/04/25

2007/04/26

2007/04/27

2007/04/28

2007/04/29

2007/04/30

2007/05/01

2007/05/02

sql為:

select to_char(to_date('2007/04/25', 'yyyy/mm/dd') + (level - 1), 'yyyy/mm/dd')

from dual

connect by trunc(to_date('2007/04/25', 'yyyy/mm/dd')) + level - 1 <= trunc(to_date('2007/05/02', 'yyyy/mm/dd'));

2、列出月份

已知:2011-03 2012-07

得出:2011-03

2011-04

2011-05

2011-06

2011-07

2011-08

2011-09

2011-10

2011-11

2011-12

2012-01

2012-02

2012-03

2012-04

2012-05

2012-06

sql為:

select to_char( add_months(to_date('2011-03', 'yyyy-mm'), rownum - 1), 'yyyy-mm' ) as yearmonth

from dual

connect by rownum <=

(select months_between(to_date('2012-07', 'yyyy-mm'), to_date('2011-03', 'yyyy-mm'))

from dual

)

參考資料

[1].求助:列出日期範圍內的所有日期.

[2].列出指定時間範圍內的所有月份.

MYSQL 列出某個月或是已知日期範圍內的所有日期

set mycnt 0 select date add 2008 07 31 interval mycnt mycnt 1 day as day from t prehandle qeesoo 04 limit 31 上面這個sql就可以列出8月份所有日期。上面sql裡的2008 07 31指的是起...

oracle 列出指定時間範圍內的所有月份

今天在做乙個系統的時候要到這麼乙個需求 按月份統計出指定時間範圍內的資料量,寫好sql後執行發現當某個月份不存在資料時,這個月份在統計列表中就不會出現。所以要想辦法將給出的時間範圍內的所有月份列出來然後和之前的統計結果做乙個左關聯就ok了。核心 第一種方法 select to char add mo...

MySQL日期範圍內查詢

1,查詢當天 今天 的資料 select from order where to days order time to days now 2,查詢昨天的資料 select from order where to days now to days order time 13,查詢最近7天的資料 包括今...