การใช้ฟังก์ชันแปลงข้อมูล

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...