使用轉換函式

Oracle SQL 入門

Hadrien Lacroix

Content Developer

資料型別

資料型別決定欄位可包含的資料類型。

數值資料 文字資料 日期資料
AVG x
SUM x
MIN x x x
COUNT x x x

轉換函式 可將欄位從一種資料型別轉為另一種

Oracle SQL 入門

轉換函式

  • 資料型別轉換
    • 隱性資料型別轉換
    • 顯性資料型別轉換
Oracle SQL 入門

隱性資料型別轉換

SQL 會自動轉換資料型別

SELECT 'Track length: ' || Milliseconds
FROM Track
| 'Track length: ' || Milliseconds     |
|--------------------------------------|
| Track length: 343719                 |
| Track length: 342562                 |
| ...                                  |
Oracle SQL 入門

顯性資料型別轉換

轉換函式與資料型別的摘要圖

Oracle SQL 入門

轉為文字資料

使用 TO_CHAR 將「數值」字串轉為文字格式:

SELECT UnitPrice, TO_CHAR(UnitPrice, '$999.99') 
FROM InvoiceLine
| UnitPrice   | TO_CHAR(UnitPrice, '$9.99') |
|-------------|-----------------------------|
| 0.99        | $0.99                       |
| 1.99        | $1.99                       |
| ...         | ...                         |
  • $:浮動美元符號
  • .:小數點位置
  • 9:數字位置;9 的數量決定顯示寬度
  • 0:前置補零
  • ,:千分位逗號位置
Oracle SQL 入門

轉為文字資料

使用 TO_CHAR 將「日期」字串轉為文字格式:

SELECT TO_CHAR(BirthDate, 'DD-MON-YYYY') 
FROM Employee
| TO_CHAR(BirthDate, 'DD-MON-YYYY') |
|-----------------------------------|
| 19-SEP-1947                       |
| ...                               |
  • YYYY:4 位數年份
  • YEAR:英文年份全拼
  • MM:2 位數月份
  • MONTH:英文月份全名
  • MON:英文月份 3 字母縮寫
  • DY:英文星期 3 字母縮寫
  • DAY:英文星期全名
  • DD:月份中的日期(數字)
Oracle SQL 入門

轉為數值資料

使用 TO_NUMBER 將文字字串轉為數值格式:

SELECT TO_NUMBER('$15,000.75', '$999,999.99')
FROM DUAL
| TO_NUMBER('$15,000.75', '$999,999.99') |
|----------------------------------------|
| 15000.75                               |
  • $:浮動美元符號
  • .:小數點位置
  • 9:數字位置;9 的數量決定顯示寬度
  • 0:前置補零
  • ,:千分位逗號位置
Oracle SQL 入門

轉為日期資料

使用 TO_DATE 將文字字串轉為日期格式:

SELECT TO_DATE('2016-01-31','YYYY-MM-DD')
FROM DUAL
| TO_DATE('2016-01-31','YYYY-MM-DD')     |
|----------------------------------------|
| 31-JAN-16                              |
  • YYYY:4 位數年份
  • YEAR:英文年份全拼
  • MM:2 位數月份
  • MONTH:英文月份全名
  • MON:英文月份 3 字母縮寫
  • DY:英文星期 3 字母縮寫
  • DAY:英文星期全名
  • DD:月份中的日期(數字)
Oracle SQL 入門

該用哪種資料型別轉換?

注意標誌

 

  • 儘量使用顯性轉換
    • 較易閱讀與維護
    • 程式可持續正確執行
Oracle SQL 入門

一起來練習吧!

Oracle SQL 入門

Preparing Video For Download...