Použití konverzních funkcí

Introduction to Oracle SQL

Hadrien Lacroix

Content Developer

Datové typy

Datové typy určují, jaký typ dat může sloupec obsahovat.

Numerická data Znaková data Datumová data
AVG x
SUM x
MIN x x x
COUNT x x x

Konverzní funkce převádějí sloupec z jednoho datového typu na jiný

Introduction to Oracle SQL

Konverzní funkce

  • Konverze datových typů
    • Implicitní konverze datových typů
    • Explicitní konverze datových typů
Introduction to Oracle SQL

Implicitní konverze datových typů

SQL automaticky převádí datové typy

SELECT 'Track length: ' || Milliseconds
FROM Track
| 'Track length: ' || Milliseconds     |
|--------------------------------------|
| Track length: 343719                 |
| Track length: 342562                 |
| ...                                  |
Introduction to Oracle SQL

Explicitní konverze datových typů

Souhrnný diagram konverzních funkcí a datových typů

Introduction to Oracle SQL

Převod na znakový datový typ

Převod řetězce číslo na znakový formát pomocí funkce 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                       |
| ...         | ...                         |
  • $ : Plovoucí znak dolaru
  • . : Pozice desetinné čárky
  • 9 : Číselná pozice; počet číslic 9 určuje šířku zobrazení
  • 0 : Úvodní nuly
  • , : Pozice oddělovače tisíců
Introduction to Oracle SQL

Převod na znakový datový typ

Převod řetězce datum na znakový formát pomocí funkce TO_CHAR:

SELECT TO_CHAR(BirthDate, 'DD-MON-YYYY') 
FROM Employee
| TO_CHAR(BirthDate, 'DD-MON-YYYY') |
|-----------------------------------|
| 19-SEP-1947                       |
| ...                               |
  • YYYY: Čtyřciferný rok
  • YEAR: Rok slovně
  • MM: Dvouciferný měsíc
  • MONTH: Celý název měsíce
  • MON: Zkratka měsíce (3 znaky)
  • DY: Zkratka dne v týdnu (3 znaky)
  • DAY: Celý název dne
  • DD: Číselný den v měsíci
Introduction to Oracle SQL

Převod na číselný datový typ

Převod znakového řetězce na číselný formát pomocí funkce TO_NUMBER:

SELECT TO_NUMBER('$15,000.75', '$999,999.99')
FROM DUAL
| TO_NUMBER('$15,000.75', '$999,999.99') |
|----------------------------------------|
| 15000.75                               |
  • $ : Plovoucí znak dolaru
  • . : Pozice desetinné čárky
  • 9 : Číselná pozice; počet číslic 9 určuje šířku zobrazení
  • 0 : Úvodní nuly
  • , : Pozice oddělovače tisíců
Introduction to Oracle SQL

Převod na datumový datový typ

Převod znakového řetězce na datumový formát pomocí funkce 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: Čtyřciferný rok
  • YEAR: Rok slovně
  • MM: Dvouciferný měsíc
  • MONTH: Celý název měsíce
  • MON: Zkratka měsíce (3 znaky)
  • DY: Zkratka dne v týdnu (3 znaky)
  • DAY: Celý název dne
  • DD: Číselný den v měsíci
Introduction to Oracle SQL

Jaký typ konverze datových typů použít?

Varovná značka

 

  • Vždy používejte explicitní konverzi
    • Snazší čitelnost a údržba
    • Kód zůstane funkční
Introduction to Oracle SQL

Pojďme cvičit!

Introduction to Oracle SQL

Preparing Video For Download...