Oracle獲取一年中的所有日期和一個月中的所有日期

以當日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):獲取當月的最後一天

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章