Utiliser des fonctions de conversion

Introduction à Oracle SQL

Hadrien Lacroix

Content Developer

Types de données

Les types de données définissent ce qu'une colonne peut contenir.

Données numériques Données de caractères Données de date
AVG x
SUM x
MIN x x x
COUNT x x x

Les fonctions de conversion changent le type d'une colonne

Introduction à Oracle SQL

Fonctions de conversion

  • Conversion de type de données
    • Conversion implicite
    • Conversion explicite
Introduction à Oracle SQL

Conversion implicite de type

SQL convertit automatiquement les types de données

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

Conversion explicite de type

Schéma récapitulatif des fonctions de conversion et des types de données

Introduction à Oracle SQL

Conversion en données de type caractères

Convertir une chaîne de nombre en format caractères avec 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                       |
| ...         | ...                         |
  • $ : symbole de dollar flottant
  • . : position décimale
  • 9 : position numérique; le nombre de 9 définit la largeur d'affichage
  • 0 : zéros non significatifs
  • , : position de la virgule dans le nombre
Introduction à Oracle SQL

Conversion en données de type caractères

Convertir une date en format caractères avec TO_CHAR :

SELECT TO_CHAR(BirthDate, 'DD-MON-YYYY') 
FROM Employee
| TO_CHAR(BirthDate, 'DD-MON-YYYY') |
|-----------------------------------|
| 19-SEP-1947                       |
| ...                               |
  • YYYY : année sur quatre chiffres
  • YEAR : année en toutes lettres
  • MM : mois sur deux chiffres
  • MONTH : nom complet du mois
  • MON : mois en 3 lettres
  • DY : jour de la semaine en 3 lettres
  • DAY : nom complet du jour
  • DD : jour du mois (numérique)
Introduction à Oracle SQL

Conversion en données numériques

Convertir une chaîne de caractères en format numérique avec TO_NUMBER :

SELECT TO_NUMBER('$15,000.75', '$999,999.99')
FROM DUAL
| TO_NUMBER('$15,000.75', '$999,999.99') |
|----------------------------------------|
| 15000.75                               |
  • $ : symbole de dollar flottant
  • . : position décimale
  • 9 : position numérique; le nombre de 9 définit la largeur d'affichage
  • 0 : zéros non significatifs
  • , : position de la virgule dans le nombre
Introduction à Oracle SQL

Conversion en données de type date

Convertir une chaîne de caractères en format date avec 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 : année sur quatre chiffres
  • YEAR : année en toutes lettres
  • MM : mois sur deux chiffres
  • MONTH : nom complet du mois
  • MON : mois en 3 lettres
  • DY : jour de la semaine en 3 lettres
  • DAY : nom complet du jour
  • DD : jour du mois (numérique)
Introduction à Oracle SQL

Quel type de conversion devriez-vous utiliser ?

Panneau d'avertissement

 

  • Utilisez toujours la conversion explicite
    • Plus lisible et facile à maintenir
    • Le code restera fonctionnel
Introduction à Oracle SQL

Passons à la pratique !

Introduction à Oracle SQL

Preparing Video For Download...