以當日SYSDATE爲傳入時間,也可以自行傳入需要的日期
獲取當月所有日期
SELECT TRUNC(SYSDATE, 'MM') + ROWNUM - 1 FROM DUAL CONNECT BY ROWNUM <= TO_NUMBER(TO_CHAR(LAST_DAY(SYSDATE), 'dd'))
獲取當年所有日期
SELECT TRUNC(SYSDATE, 'YYYY') + ROWNUM - 1 FROM DUAL CONNECT BY ROWNUM <= ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), 12) - TRUNC(SYSDATE, 'YYYY')
對所用函數的解釋:
語法格式:
TRUNC(date[,fmt])
其中:date 一個日期值;fmt 日期格式。
該日期將按指定的日期格式截取;忽略它則由最近的日期截取。
示例:
select trunc(sysdate) from dual;--2017/2/13,返回當前時間
select trunc(sysdate,'yy') from dual;--2017/1/1,返回當年第一天
select trunc(sysdate,'mm') from dual;--2017/2/1,返回當月的第一天
select trunc(sysdate,'d') from dual;--2017/2/12,返回當前星期的第一天,即星期天
select trunc(sysdate,'dd') from dual;--2017/2/13,返回當前日期,今天是2017/2/13
select trunc(sysdate ,'HH24') from dual;--2017/2/13 15:00:00,返回本小時的開始時間
select trunc(sysdate ,'MI') from dual;--2017/2/13 15:13:00,返回本分鐘的開始時間
ADD_MONTHS(date,num):在當前日期date上加上num個月
LAST_DAY(SYSDATE):獲取當月的最後一天