【PL/SQL】轉換函數(日期/字符串/數字)

看完這章你會學到如下內容segmentfault

  • 轉換函數有那幾種,一般用得最多的是那個?
  • 爲何要用轉換函數?
  • 各自轉換的關係,適用條件是什麼?

數據類型有三類:數字,字符,日期
對應就用轉換它們三種類型的函數 :轉換函數!函數

To_Date 轉日期
Date 強制轉換,裏面必定要有'-'才能轉換,數字只會出現錯誤,例如:spa

SELECT DATE'2019-01-01' FROM DUAL;  --- 強制轉換爲日期格式
  SELECT TO_DATE('2019-01-01','YYYY/MM/DD') FROM DUAL;
  SELECT TO_DATE('2019-01-01','YYYY-MM-DD') FROM DUAL;
  SELECT TO_DATE('2019-01-01','YYYYMMDD') FROM DUAL;  ---- 錯誤, 日期轉換隻有以上兩種形式
  

   注意:字符或數字中的年月日必須是日期範圍內的值
   SELECT TO_DATE('2019-13-08','YYYY-MM-DD'),  -- 月份不對
          TO_DATE(20190732,'YYYY-MM-DD')       -- 天數不對
     FROM DUAL;
   -- 字符日期中有-或/轉化爲日期類型必須加-或/ 
   SELECT TO_DATE('2019-07-08','YYYYMMDD'), -- 錯誤
          TO_DATE(20190708,'YYYY-MM-DD')  FROM DUAL;   --- 成功

To_Char() 轉換爲字符code

SELECT TRUNC(TO_DATE(SYSDATE),'Y') FROM DUAL;
  SELECT TO_CHAR(DATE'2019-08-30','YYYY'),   -- '2019'
       TO_CHAR(DATE'2019-08-30','YYYYMM'), -- '201908'
       TO_CHAR(DATE'2019-08-30','WW'),     -- '35'  第35周
       TO_CHAR(DATE'2019-08-30','IW'),     -- '35'  第35周(天然周)
       TO_CHAR(DATE'2019-08-30','Q'),      -- '3'   第3季度
       TO_CHAR(DATE'2019-08-30','MM'),     -- '08'
       TO_CHAR(DATE'2019-08-30','DD'),     -- '30'
       TO_CHAR(DATE'2019-08-30','D')       -- '6'   當週的第幾天(星期天爲第一天)
    FROM DUAL;

To_Number() 轉化爲數字rem

SELECT TRUNC(TO_DATE(SYSDATE),'Y') FROM DUAL;
       SELECT TO_CHAR(DATE'2019-08-30','YYYY'),   -- '2019'
       TO_CHAR(DATE'2019-08-30','YYYYMM'), -- '201908'
       TO_CHAR(DATE'2019-08-30','WW'),     -- '35'  第35周
       TO_CHAR(DATE'2019-08-30','IW'),     -- '35'  第35周(天然周)
       TO_CHAR(DATE'2019-08-30','Q'),      -- '3'   第3季度
       TO_CHAR(DATE'2019-08-30','MM'),     -- '08'
       TO_CHAR(DATE'2019-08-30','DD'),     -- '30'
       TO_CHAR(DATE'2019-08-30','D')       -- '6'   當週的第幾天(星期天爲第一天)
    FROM DUAL;

PS: 日期轉數字的話:先轉爲字符,而後再轉發爲數字,最後是靠右顯示。
v2-b694f9eef45a6539450a1ab25515efad_720w.jpgit

相關文章
相關標籤/搜索