Funkcje konwersji

Wprowadzenie do Oracle SQL

Hadrien Lacroix

Content Developer

Typy danych

Typy danych określają, jakie dane może zawierać kolumna.

Dane liczbowe Dane znakowe Dane daty
AVG x
SUM x
MIN x x x
COUNT x x x

Funkcje konwersji przekształcają kolumnę z jednego typu danych na inny

Wprowadzenie do Oracle SQL

Funkcje konwersji

  • Konwersja typów danych
    • Niejawna konwersja typów danych
    • Jawna konwersja typów danych
Wprowadzenie do Oracle SQL

Niejawna konwersja typów danych

SQL automatycznie konwertuje typy danych

SELECT 'Track length: ' || Milliseconds
FROM Track
| 'Track length: ' || Milliseconds     |
|--------------------------------------|
| Track length: 343719                 |
| Track length: 342562                 |
| ...                                  |
Wprowadzenie do Oracle SQL

Jawna konwersja typów danych

Diagram podsumowujący funkcje konwersji i typy danych

Wprowadzenie do Oracle SQL

Konwersja na dane znakowe

Konwersja ciągu liczbowego na format znakowy przy użyciu funkcji 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                       |
| ...         | ...                         |
  • $ : Pływający znak dolara
  • . : Pozycja dziesiętna
  • 9 : Określa pozycję liczbową. Liczba dziewiątek wyznacza szerokość wyświetlania
  • 0 : Określa wiodące zera
  • , : Pozycja przecinka w liczbie
Wprowadzenie do Oracle SQL

Konwersja na dane znakowe

Konwersja ciągu daty na format znakowy przy użyciu funkcji TO_CHAR:

SELECT TO_CHAR(BirthDate, 'DD-MON-YYYY') 
FROM Employee
| TO_CHAR(BirthDate, 'DD-MON-YYYY') |
|-----------------------------------|
| 19-SEP-1947                       |
| ...                               |
  • YYYY: Czterocyfrowy rok
  • YEAR: Rok słownie
  • MM: Dwucyfrowy miesiąc
  • MONTH: Pełna nazwa miesiąca
  • MON: Trzyliterowy skrót miesiąca
  • DY: Trzyliterowy skrót dnia tygodnia
  • DAY: Pełna nazwa dnia
  • DD: Numeryczny dzień miesiąca
Wprowadzenie do Oracle SQL

Konwersja na dane liczbowe

Konwersja ciągu znaków na format liczbowy przy użyciu funkcji TO_NUMBER:

SELECT TO_NUMBER('$15,000.75', '$999,999.99')
FROM DUAL
| TO_NUMBER('$15,000.75', '$999,999.99') |
|----------------------------------------|
| 15000.75                               |
  • $ : Pływający znak dolara
  • . : Pozycja dziesiętna
  • 9 : Określa pozycję liczbową. Liczba dziewiątek wyznacza szerokość wyświetlania
  • 0 : Określa wiodące zera
  • , : Pozycja przecinka w liczbie
Wprowadzenie do Oracle SQL

Konwersja na dane daty

Konwersja ciągu znaków na format daty przy użyciu funkcji 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: Czterocyfrowy rok
  • YEAR: Rok słownie
  • MM: Dwucyfrowy miesiąc
  • MONTH: Pełna nazwa miesiąca
  • MON: Trzyliterowy skrót miesiąca
  • DY: Trzyliterowy skrót dnia tygodnia
  • DAY: Pełna nazwa dnia
  • DD: Numeryczny dzień miesiąca
Wprowadzenie do Oracle SQL

Który typ konwersji danych wybrać?

Znak ostrzeżenia

 

  • Zawsze należy stosować jawną konwersję
    • Łatwiejsza do odczytania i utrzymania
    • Kod pozostaje niezawodny
Wprowadzenie do Oracle SQL

Czas na ćwiczenia!

Wprowadzenie do Oracle SQL

Preparing Video For Download...