Використання функцій перетворення

Вступ до 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: 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: чотирицифровий рік
  • YEAR: рік прописом
  • MM: дві цифри місяця
  • MONTH: повна назва місяця
  • MON: 3-літерна абревіатура місяця
  • DY: 3-літерна абревіатура дня тижня
  • DAY: повна назва дня
  • DD: число дня місяця
Вступ до Oracle SQL

Яке перетворення типів слід використовувати?

Знак обережності

 

  • Завжди використовуйте явне перетворення
    • Його легше читати й підтримувати
    • Код і надалі працюватиме
Вступ до Oracle SQL

Давайте потренуємось!

Вступ до Oracle SQL

Preparing Video For Download...