Uso delle funzioni di conversione

Introduzione a Oracle SQL

Hadrien Lacroix

Content Developer

Tipi di dato

I tipi di dato definiscono che tipo di dati può contenere una colonna.

Dati numerici Dati alfanumerici Dati data
AVG x
SUM x
MIN x x x
COUNT x x x

Le funzioni di conversione convertono una colonna da un tipo di dato a un altro

Introduzione a Oracle SQL

Funzioni di conversione

  • Conversione dei tipi di dato
    • Conversione implicita
    • Conversione esplicita
Introduzione a Oracle SQL

Conversione implicita del tipo di dato

SQL converte automaticamente i tipi di dato

SELECT 'Track length: ' || Milliseconds
FROM Track
| 'Track length: ' || Milliseconds     |
|--------------------------------------|
| Track length: 343719                 |
| Track length: 342562                 |
| ...                                  |
Introduzione a Oracle SQL

Conversione esplicita del tipo di dato

Diagramma riepilogativo di funzioni di conversione e tipi di dato

Introduzione a Oracle SQL

Conversione in dati alfanumerici

Converti una stringa di numero in formato alfanumerico con la funzione 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                       |
| ...         | ...                         |
  • $ : Simbolo di dollaro mobile
  • . : Posizione decimale
  • 9 : Indica una posizione numerica. Il numero di 9 determina la larghezza di visualizzazione
  • 0 : Indica zeri iniziali
  • , : Posizione della virgola nel numero
Introduzione a Oracle SQL

Conversione in dati alfanumerici

Converti una stringa di data in formato alfanumerico con la funzione TO_CHAR:

SELECT TO_CHAR(BirthDate, 'DD-MON-YYYY') 
FROM Employee
| TO_CHAR(BirthDate, 'DD-MON-YYYY') |
|-----------------------------------|
| 19-SEP-1947                       |
| ...                               |
  • YYYY: Anno a quattro cifre
  • YEAR: Anno in lettere
  • MM: Mese a due cifre
  • MONTH: Nome completo del mese
  • MON: Mese in 3 lettere
  • DY: Giorno della settimana in 3 lettere
  • DAY: Nome completo del giorno
  • DD: Giorno del mese numerico
Introduzione a Oracle SQL

Conversione in dati numerici

Converti una stringa alfanumerica in formato numerico con la funzione TO_NUMBER:

SELECT TO_NUMBER('$15,000.75', '$999,999.99')
FROM DUAL
| TO_NUMBER('$15,000.75', '$999,999.99') |
|----------------------------------------|
| 15000.75                               |
  • $ : Simbolo di dollaro mobile
  • . : Posizione decimale
  • 9 : Indica una posizione numerica. Il numero di 9 determina la larghezza di visualizzazione
  • 0 : Indica zeri iniziali
  • , : Posizione della virgola nel numero
Introduzione a Oracle SQL

Conversione in dati data

Converti una stringa alfanumerica in formato data con la funzione 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: Anno a quattro cifre
  • YEAR: Anno in lettere
  • MM: Mese a due cifre
  • MONTH: Nome completo del mese
  • MON: Mese in 3 lettere
  • DY: Giorno della settimana in 3 lettere
  • DAY: Nome completo del giorno
  • DD: Giorno del mese numerico
Introduzione a Oracle SQL

Quale conversione del tipo di dato usare?

Segnale di attenzione

 

  • Usa sempre la conversione esplicita
    • Più facile da leggere e mantenere
    • Il codice continuerà a funzionare
Introduzione a Oracle SQL

Esercitiamoci!

Introduzione a Oracle SQL

Preparing Video For Download...