任何人都可以請讓我知道如何獲取本月的第一個日期列表直到當前日期爲止嗎?可以說我想獲得2015年5月的第一天,直到5月17日到2015年如何在oracle中獲取本月的第一個日期直到當前日期在oracle中
的格式應該是這樣的:DDMMYYYY
任何人都可以請讓我知道如何獲取本月的第一個日期列表直到當前日期爲止嗎?可以說我想獲得2015年5月的第一天,直到5月17日到2015年如何在oracle中獲取本月的第一個日期直到當前日期在oracle中
的格式應該是這樣的:DDMMYYYY
你可以connect by
的level
僞列,並通過它concatinating當前的月份和年份格式化這個結果:
SELECT TO_CHAR(LEVEL, '09') || TO_CHAR(SYSDATE, 'mmyyyy')
FROM dual
CONNECT BY LEVEL < TO_NUMBER(TO_CHAR(SYSDATE, 'dd'))
ED IT:
要在本月顯示所有的日子裏,你可以使用last_day
功能檢查在一個月的天數:
SELECT TO_CHAR(LEVEL, '09') || TO_CHAR(SYSDATE, 'mmyyyy')
FROM dual
CONNECT BY LEVEL < TO_NUMBER(TO_CHAR(LAST_DAY(SYSDATE), 'dd'))
從拿到這個月的日子開始當天:
查詢1:
SELECT TRUNC(SYSDATE, 'MM') + LEVEL - 1 AS DATE_OF_CURRENT_MONTH
FROM DUAL
CONNECT BY LEVEL <= EXTRACT(DAY FROM SYSDATE)
| DATE_OF_CURRENT_MONTH |
|-----------------------|
| May, 01 2015 00:00:00 |
| May, 02 2015 00:00:00 |
| May, 03 2015 00:00:00 |
| May, 04 2015 00:00:00 |
| . |
| . |
| . |
| May, 15 2015 00:00:00 |
| May, 16 2015 00:00:00 |
| May, 17 2015 00:00:00 |
查詢2:
WITH CTE(DATE_OF_CURRENT_MONTH, Lvl) AS
(
SELECT TRUNC(SYSDATE, 'MM'), 1
FROM DUAL
UNION ALL
SELECT TRUNC(SYSDATE, 'MM') + Lvl, Lvl + 1
FROM CTE
WHERE Lvl < EXTRACT(DAY FROM SYSDATE)
)
SELECT DATE_OF_CURRENT_MONTH FROM CTE
| DATE_OF_CURRENT_MONTH |
|-----------------------|
| May, 01 2015 00:00:00 |
| May, 02 2015 00:00:00 |
| May, 03 2015 00:00:00 |
| May, 04 2015 00:00:00 |
| . |
| . |
| . |
| May, 15 2015 00:00:00 |
| May, 16 2015 00:00:00 |
| May, 17 2015 00:00:00 |
爲了得到這個月的所有天:
查詢3:
SELECT TRUNC(SYSDATE, 'MM') + LEVEL - 1 AS DATE_OF_CURRENT_MONTH
FROM DUAL
CONNECT BY LEVEL <= EXTRACT(DAY FROM LAST_DAY(SYSDATE))
| DATE_OF_CURRENT_MONTH |
|-----------------------|
| May, 01 2015 00:00:00 |
| May, 02 2015 00:00:00 |
| May, 03 2015 00:00:00 |
| May, 04 2015 00:00:00 |
| . |
| . |
| . |
| May, 29 2015 00:00:00 |
| May, 30 2015 00:00:00 |
| May, 31 2015 00:00:00 |
查詢4:
WITH CTE(DATE_OF_CURRENT_MONTH, Lvl) AS
(
SELECT TRUNC(SYSDATE, 'MM'), 1
FROM DUAL
UNION ALL
SELECT TRUNC(SYSDATE, 'MM') + Lvl, Lvl + 1
FROM CTE
WHERE Lvl < EXTRACT(DAY FROM LAST_DAY(SYSDATE))
)
SELECT DATE_OF_CURRENT_MONTH FROM CTE
| DATE_OF_CURRENT_MONTH |
|-----------------------|
| May, 01 2015 00:00:00 |
| May, 02 2015 00:00:00 |
| May, 03 2015 00:00:00 |
| May, 04 2015 00:00:00 |
| . |
| . |
| . |
| May, 29 2015 00:00:00 |
| May, 30 2015 00:00:00 |
| May, 31 2015 00:00:00 |
不清楚你的意思是「列表」。請你詳細說明一下嗎? –
列表含義表示結果將顯示第一個日期,直到當前日期與年和月橫向 例如, 日 - 月 - 年 2015年1月5日 2015年2月5日 ..... ..... ......直到當前的日期17-05-2015 – Iftekhar