天天看點

sqlserver日期格式轉換yyyymmdd_【SQL常用函數】 第二集 轉換函數

看完這章你會學到以下内容
  • 轉換函數有那幾種,通常用得最多的是那個?
  • 為什麼要用轉換函數?
  • 各自轉換的關系,适用條件是什麼?

資料類型有三類:數字,字元,日期

對應就用轉換它們三種類型的函數 :轉換函數!

To_Date 轉日期 Date 強制轉換,裡面一定要有'-'才能轉換,數字隻會出現錯誤,例如:
sqlserver日期格式轉換yyyymmdd_【SQL常用函數】 第二集 轉換函數
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;   --- 成功	
           
sqlserver日期格式轉換yyyymmdd_【SQL常用函數】 第二集 轉換函數
sqlserver日期格式轉換yyyymmdd_【SQL常用函數】 第二集 轉換函數
sqlserver日期格式轉換yyyymmdd_【SQL常用函數】 第二集 轉換函數
To_Char() 轉換為字元
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;
           
sqlserver日期格式轉換yyyymmdd_【SQL常用函數】 第二集 轉換函數
To_Number() 轉化為數字
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:

日期轉數字的話:先轉為字元,然後再轉發為數字,最後是靠右顯示。
sqlserver日期格式轉換yyyymmdd_【SQL常用函數】 第二集 轉換函數

繼續閱讀