問題名單
輸入:
START_DATE END_DATE
01-FEB-16 03-FEB-16
01-FEB-16 02-FEB-16
10-FEB-16 11-FEB-16
我要生成所有START_DAY和END_DAY之間的日期爲
Output
01-FEB-16
02-FEB-16
03-FEB-16
10-FEB-16
11-FEB-16
問題名單
輸入:
START_DATE END_DATE
01-FEB-16 03-FEB-16
01-FEB-16 02-FEB-16
10-FEB-16 11-FEB-16
我要生成所有START_DAY和END_DAY之間的日期爲
Output
01-FEB-16
02-FEB-16
03-FEB-16
10-FEB-16
11-FEB-16
你可以通過做Row Generator技術。
設置
SQL> CREATE TABLE t
2 (START_DATE DATE, END_DATE DATE
3 );
Table created.
SQL> INSERT INTO t VALUES(DATE '2016-02-01', DATE '2016-02-03');
1 row created.
SQL> INSERT INTO t VALUES(DATE '2016-02-01', DATE '2016-02-02');
1 row created.
SQL> INSERT INTO t VALUES(DATE '2016-02-10', DATE '2016-02-11');
1 row created.
SQL> COMMIT;
Commit complete.
查詢
SQL> SELECT DISTINCT TO_CHAR(START_DATE+LEVEL-1, 'DD-MON-YYYY') the_date
2 FROM t
3 CONNECT BY LEVEL <= END_DATE-START_DATE+1
4 ORDER BY the_date
5/
THE_DATE
-----------
01-FEB-2016
02-FEB-2016
03-FEB-2016
10-FEB-2016
11-FEB-2016
SQL>
@Abhishek什麼錯誤?我發佈了一個工作示例。複製粘貼SQL * Plus會話並顯示你正在做什麼,就像我向你展示的那樣。 –
對不起哥們。它工作正常。上次執行時錯過了一些東西。非常辛苦地工作了2天,但沒有得到結果。最後我得到了。非常感謝 – Abhishek
@Abhishek不客氣。請將其標記爲已回答,也會幫助其他人! –
檢查http://stackoverflow.com/a/16207828/68868的答案,類似的問題。只需在最外面的選擇中添加一個獨特的,你會得到獨特的日期。 –
請參閱[**行生成器**](https://lalitkumarb.com/2015/04/15/generate-date-month-name-week-number-day-number-between-two-dates-in-oracle -sql /) –
[兩列之間生成日期]可能重複(http://stackoverflow.com/questions/35332130/generating-dates-between-two-columns) – Noel