1. 程式人生 > 其它 >函式(轉換函式)

函式(轉換函式)

技術標籤:筆記sql資料庫

一.TO_CHAR()
將其他型別的資料轉換成字元型的資料

  1. 格式

–數字轉字元

1).不指定格式
TO_CHAR(資料):將括號內的資料轉換成字元型的資料

示例:
SELECT 123,TO_CHAR(123) FROM DUAL;
SELECT TO_CHAR(‘4A’) FROM DUAL;

2).指定格式(TO_CHAR(資料,格式))
–指定精度
數值轉字元中的萬用字元:通過0或9來代指該位內容
9:指任意數字,若整數位該位置無數字,則格式不生效,小數位該位置無數字以0補全
0:指任意數字,若整數位該位置無數字,則強制顯示為0,小數位一般不用0代指

注意:
–小數位精度不夠,0和9 均按照四捨五入進位

–小數位精度過多,0和9均0補位
—整數位精度不夠,0和9均顯示全為#
–整數位精度過多,9無影響,0時,強制0補位

示例:
1. SELECT TO_CHAR(123.456,‘999.999’) FROM DUAL;–轉換時會增加一個空格

2.小數位精度不夠
  SELECT TO_CHAR(123.456,'999.99') FROM DUAL;-- 123.46
  SELECT TO_CHAR(123.456,'000.00') FROM DUAL;-- 123.46
  
3.小數位精度過多
 
  SELECT TO_CHAR(123.456,'999.9999') FROM DUAL;-- 123.4560
  SELECT TO_CHAR(123.456,'999.0000') FROM DUAL;-- 123.4560 
  
4.整數位不夠
  
  SELECT TO_CHAR(1235.456,'999.999') FROM DUAL;-- ########
  SELECT TO_CHAR(1236.456,'000.99') FROM DUAL;-- ########
  
5.整數位過多

  SELECT TO_CHAR(123.456,'9999.99') FROM DUAL;-- 123.46 
  SELECT TO_CHAR(123.456,'0000.99') FROM DUAL;-- 0123.46 

–指定貨幣符號 ($ L 千分符)
1.美元符號
SELECT TO_CHAR(123.456,’$999.99’) FROM DUAL;-- $123.46
SELECT TO_CHAR(123.456,‘9$99.99’) FROM DUAL;
SELECT TO_CHAR(123.456,‘99 9.9 9 ′ ) F R O M D U A L ; S E L E C T T O C H A R ( 123.456 , ′ 999 9.99') FROM DUAL; SELECT TO_CHAR(123.456,'999 9.99)FROMDUAL;SELECTTOCHAR(12

3.456,999.99’) FROM DUAL;
SELECT TO_CHAR(123.456,‘999.$99’) FROM DUAL;
SELECT TO_CHAR(123.456,‘999.9 9 ′ ) F R O M D U A L ; S E L E C T T O C H A R ( 123.456 , ′ 999.99 9') FROM DUAL; SELECT TO_CHAR(123.456,'999.99 9)FROMDUAL;SELECTTOCHAR(123.456,999.99’) FROM DUAL;

2.本地貨幣
 L: LOCAL 當地的
   SELECT TO_CHAR(123.456,'L999.99') FROM DUAL;--        ¥123.46
   SELECT TO_CHAR(123.456,'9L99.99') FROM DUAL;--報錯
   SELECT TO_CHAR(123.456,'99L9.99') FROM DUAL;--報錯
   SELECT TO_CHAR(123.456,'999L.99') FROM DUAL;--報錯
   SELECT TO_CHAR(123.456,'999.L99') FROM DUAL;--報錯
   SELECT TO_CHAR(123.456,'999.9L9') FROM DUAL;--報錯
   SELECT TO_CHAR(123.456,'999.99L') FROM DUAL;--        123.46¥
   
3.千分符
  SELECT TO_CHAR(100000,'999,999,999') FROM DUAL;--     100,000
  
  SELECT TO_CHAR(100000,'999,999,999') FROM DUAL;--     100,000 

2.日期轉字元
結構:TO_CAHR(日期,格式)
格式:YYYY MM DD HH24/HH12 MI SS DAY WW IW W

二.TO_DATE()
將字元型的日期轉換成日期型的資料

三.TO_NUMBER()
將字元型的數字轉換成數值型的數字