看完這章你會學到如下內容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: 日期轉數字的話:先轉爲字符,而後再轉發爲數字,最後是靠右顯示。
it