oracle日期格式雜燴

注意(關於IW計算週數):

1、如果一年當中第52周別之後至當年的12月31日之間,還有大於或等於4天的話,則定爲當年的第53周,否則剩餘這些天數被歸爲下一年的第1周;

2、如果在不足52周別的話,則以下一年的時間來補;

3、每週固定的從週一開始作爲本週的第1天,到週日作爲本週的第7天;


1、關於to_char格式'W','WW','IW'

   a 、SELECT TO_CHAR(date,'W') FROM DUAL  ---date是本月的第幾周,其中本月的1號是第1周第1天。

   b、 SELECT TO_CHAR(date,'WW') FROM DUAL  ---date是本年的第幾周,其中本年1月1號是第1周的第1天。

    其中a、b的標準是一樣的,周都是從本年的1月1號或者本月的1號記爲第一週的第一天。

   c、SELECT TO_CHAR(date,'IW') FROM DUAL  ---date是本年的第幾周,其中本年第一個週一對應爲第1周的第1天,這個符合中國人的周的概念

2、查詢今天是本月第幾周

  SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" from dual;

  或

  SELECT TO_CHAR(SYSDATE,'W') AS "weekOfMon" from dual;

3、查今天是 "今年" 的第幾周

  select to_char(sysdate,'ww') from dual;

  或

  select to_char(sysdate,'iw') from dual;

  附註:

  上文所提之iw及ww格式在doc內解釋如下

  IW = Week of year (1-52 or 1-53) based on the ISO standard

  WW = Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.

4、用iw的算法查詢星期一或星期日是幾號

    公式:

          每週第一天 :next_day(date,,'MONDAY') + 周 * 7 - 7  

     每週最後一天:next_day(date,'MONDAY') + 周 * 7 - 1   or  next_day(date,,'SUNDAY') + 周 * 7 - 7

5、用iw的算法查詢星期一或星期日是幾號

    公式:

         每週第一天 :date + 周 * 7 - 7

    每週最後一天:date + 周 * 7 - 1

6、個數不同的字母表示不同的含義

SELECT TO_CHAR(SYSDATE,'d') AS "weekOfMon" from dual;      ---星期中的第幾天
SELECT TO_CHAR(SYSDATE,'dd') AS "weekOfMon" from dual;    ---月份中的第幾天
SELECT TO_CHAR(SYSDATE,'ddd') AS "weekOfMon" from dual;   ---年份中的第幾天
SELECT TO_CHAR(SYSDATE,'w') AS "weekOfMon" from dual;     ---月份中的第幾周(1日爲當月第一週第1天)
SELECT TO_CHAR(SYSDATE,'ww') AS "weekOfMon" from dual;   ---年份中的第幾周(1月1日當年第一週第1天)

SELECT TO_char(SYSDATE,'sssss') FROM dual   ---從午夜開始過去的秒數

發佈了243 篇原創文章 · 獲贊 4 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章