Conversiefuncties gebruiken

Introductie tot Oracle SQL

Hadrien Lacroix

Content Developer

Datatypes

Datatypes bepalen welk type data een kolom kan bevatten.

Numerieke data Tekstdata Datumdata
AVG x
SUM x
MIN x x x
COUNT x x x

Conversiefuncties zetten een kolom om van het ene datatype naar het andere

Introductie tot Oracle SQL

Conversiefuncties

  • Datatypeconversie
    • Impliciete datatypeconversie
    • Expliciete datatypeconversie
Introductie tot Oracle SQL

Impliciete datatypeconversie

SQL converteert datatypes automatisch

SELECT 'Track length: ' || Milliseconds
FROM Track
| 'Track length: ' || Milliseconds     |
|--------------------------------------|
| Track length: 343719                 |
| Track length: 342562                 |
| ...                                  |
Introductie tot Oracle SQL

Expliciete datatypeconversie

Schematisch overzicht van conversiefuncties en datatypes

Introductie tot Oracle SQL

Converteren naar tekstgegevens

Zet een getal-tekenreeks om naar tekst met 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                       |
| ...         | ...                         |
  • $ : Zwevend dollarteken
  • . : Decimaalteken
  • 9 : Cijferpositie; aantal 9’s bepaalt breedte
  • 0 : Voorloopnullen
  • , : Scheidingsteken voor duizendtallen
Introductie tot Oracle SQL

Converteren naar tekstgegevens

Zet een datum-tekenreeks om naar tekst met TO_CHAR:

SELECT TO_CHAR(BirthDate, 'DD-MON-YYYY') 
FROM Employee
| TO_CHAR(BirthDate, 'DD-MON-YYYY') |
|-----------------------------------|
| 19-SEP-1947                       |
| ...                               |
  • YYYY: Vier cijfers voor het jaar
  • YEAR: Jaar voluit
  • MM: Twee cijfers voor maand
  • MONTH: Volledige maandnaam
  • MON: 3-letter maand
  • DY: 3-letter dag van de week
  • DAY: Volledige dagnaam
  • DD: Dag van de maand (nummer)
Introductie tot Oracle SQL

Converteren naar numerieke gegevens

Zet een tekenreeks om naar een getal met TO_NUMBER:

SELECT TO_NUMBER('$15,000.75', '$999,999.99')
FROM DUAL
| TO_NUMBER('$15,000.75', '$999,999.99') |
|----------------------------------------|
| 15000.75                               |
  • $ : Zwevend dollarteken
  • . : Decimaalteken
  • 9 : Cijferpositie; aantal 9’s bepaalt breedte
  • 0 : Voorloopnullen
  • , : Scheidingsteken voor duizendtallen
Introductie tot Oracle SQL

Converteren naar datumgegevens

Zet een tekenreeks om naar een datum met 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: Vier cijfers voor het jaar
  • YEAR: Jaar voluit
  • MM: Twee cijfers voor maand
  • MONTH: Volledige maandnaam
  • MON: 3-letter maand
  • DY: 3-letter dag van de week
  • DAY: Volledige dagnaam
  • DD: Dag van de maand (nummer)
Introductie tot Oracle SQL

Welke datatypeconversie gebruik je?

Waarschuwingsbord

 

  • Gebruik altijd expliciete conversie
    • Makkelijker te lezen en onderhouden
    • Code blijft werken
Introductie tot Oracle SQL

Laten we oefenen!

Introductie tot Oracle SQL

Preparing Video For Download...