Använda konverteringsfunktioner

Introduktion till Oracle SQL

Hadrien Lacroix

Content Developer

Datatyper

Datatyper definierar vilken typ av data en kolumn kan innehålla.

Numerisk data Teckendata Datumdata
AVG x
SUM x
MIN x x x
COUNT x x x

Konverteringsfunktioner omvandlar en kolumn från en datatyp till en annan

Introduktion till Oracle SQL

Konverteringsfunktioner

  • Datatypkonvertering
    • Implicit datatypkonvertering
    • Explicit datatypkonvertering
Introduktion till Oracle SQL

Implicit datatypkonvertering

SQL konverterar datatyper automatiskt

SELECT 'Track length: ' || Milliseconds
FROM Track
| 'Track length: ' || Milliseconds     |
|--------------------------------------|
| Track length: 343719                 |
| Track length: 342562                 |
| ...                                  |
Introduktion till Oracle SQL

Explicit datatypkonvertering

Sammanfattningsdiagram över konverteringsfunktioner och datatyper

Introduktion till Oracle SQL

Konvertera till teckendata

Konvertera en talsträng till teckenformat med funktionen 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                       |
| ...         | ...                         |
  • $ : Flytande dollartecken
  • . : Decimalposition
  • 9 : Anger numerisk position. Antalet nior bestämmer visningsbredden
  • 0 : Anger inledande nollor
  • , : Kommaposition i talet
Introduktion till Oracle SQL

Konvertera till teckendata

Konvertera en datumsträng till teckenformat med funktionen TO_CHAR:

SELECT TO_CHAR(BirthDate, 'DD-MON-YYYY') 
FROM Employee
| TO_CHAR(BirthDate, 'DD-MON-YYYY') |
|-----------------------------------|
| 19-SEP-1947                       |
| ...                               |
  • YYYY: Årtalet med fyra siffror
  • YEAR: Året utskrivet med ord
  • MM: Månaden med två siffror
  • MONTH: Månadens fullständiga namn
  • MON: Månaden med 3 bokstäver
  • DY: Veckodagen med 3 bokstäver
  • DAY: Veckodagens fullständiga namn
  • DD: Dagen i månaden som siffra
Introduktion till Oracle SQL

Konvertera till numerisk data

Konvertera en teckensträng till numeriskt format med funktionen TO_NUMBER:

SELECT TO_NUMBER('$15,000.75', '$999,999.99')
FROM DUAL
| TO_NUMBER('$15,000.75', '$999,999.99') |
|----------------------------------------|
| 15000.75                               |
  • $ : Flytande dollartecken
  • . : Decimalposition
  • 9 : Anger numerisk position. Antalet nior bestämmer visningsbredden
  • 0 : Anger inledande nollor
  • , : Kommaposition i talet
Introduktion till Oracle SQL

Konvertera till datumdata

Konvertera en teckensträng till datumformat med funktionen 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: Årtalet med fyra siffror
  • YEAR: Året utskrivet med ord
  • MM: Månaden med två siffror
  • MONTH: Månadens fullständiga namn
  • MON: Månaden med 3 bokstäver
  • DY: Veckodagen med 3 bokstäver
  • DAY: Veckodagens fullständiga namn
  • DD: Dagen i månaden som siffra
Introduktion till Oracle SQL

Vilken typ av datatypkonvertering bör du använda?

Varningsskylt

 

  • Använd alltid explicit konvertering
    • Lättare att läsa och underhålla
    • Koden fortsätter att fungera
Introduktion till Oracle SQL

Nu kör vi en övning!

Introduktion till Oracle SQL

Preparing Video For Download...