Il y a plusieurs fonctions spéciales en SQL qui peuvent être ajoutée plus ou moins n’importe où dans la requête.
Conversion des dates
Pour convertir un DATE en chaine de caractère, on peut utilsier TO_CHAR()
Pour ce qui est de la syntaxe voici un extrait :
Syntaxe SQL
Correspond à
Exemple
dd
Jour du mois
05
mm
Mois en numéro
02
yyyy
Année en 4 numéros
2022
yy
Année en 2 numéros
22
month
Mois (épellé)
décembre
mon
Nom du mois en abrégé
JAN
ddd
Jour de l’année
365
day
Le jour en lettres
lundi
mi
Minutes
56
hh
Heures en format 12h
1
ss
Secondes
59
hh24
Heures en format 24h
13
am
Afficher AM si matin ou PM si après midi
PM
Pour la liste complète du format de TO_CHAR cliquez ici
Le même principe peut être utilisé pour convertir des chaines de caractères en date aussi avec TO_DATE() qui a la même syntaxe.
Si on veut juste extraire sans formatter certaines valeurs de DATE ou TIME on peut utiliser la fonction EXTRACT()
On peut aussi récupérer la date actuelle du système avec la fonction SYSDATE()
On peut arrondir une date à une certaine unité avec ROUND()
On peut ajouter un certain nombre de mois à une date avec ADD_MONTHS()
Affiche le dernier jour du mois avec LAST_DAY()
Affiche le nombre de mois de différence entre deux dates avec MONTHS_BETWEEN()
Pour avoir la date du premier jour de la semaine donné à partir d’une date on peut utiliser NEXT_DAY()
Conversion des chaines de caractères
On peut utiliser LOWER() pour mettre en minuscule, ou UPPER() pour mettre en majuscule.
Enfin on peut aussi utiliser SUBSTR() pour couper une chaine de caractère (c’est très similaire au substring en Java)
On peut utiliser la fonction replace pour remplacer une chaine par une autre
Mais dans certains cas on veut éliminer toute une série de caractère de nos entrées (pour pouvoir les utiliser comme nom de fichier par exemple) en utilisant TRANSLATE
Pour savoir la longueur d’une chaine de caractère on peut utiliser la fonction LENGTH
Pour savoir la position d’une chaine de caractère dans une autre chaine, on peut utiliser INSTR
Pour simplement retirer des caractères, sans utiliser REPLACE on peut utiliser TRIM et ses variantes
On peut convertir une chaine de caractère en nombre avec TO_NUMBER
Gestion des nombres
La fonction ROUND() fonctionne également pour les nombres