使用转换函数

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:四位年份
  • YEAR:年份全拼
  • MM:两位月份
  • MONTH:月份全称
  • MON:月份三字母缩写
  • DY:星期三字母缩写
  • 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:四位年份
  • YEAR:年份全拼
  • MM:两位月份
  • MONTH:月份全称
  • MON:月份三字母缩写
  • DY:星期三字母缩写
  • DAY:星期全称
  • DD:两位日
Oracle SQL 入门

应使用哪种数据类型转换?

警示标志

 

  • 始终使用显式转换
    • 更易读、易维护
    • 代码可持续运行
Oracle SQL 入门

Vamos praticar!

Oracle SQL 入门

Preparing Video For Download...