NUMTOYMINTERVAL |
Nombre à intervalle année |
|---|---|
| Oracle Database SQL | Oracle 9i (version 9.0) ou supérieure |
Syntaxe
| numtoyminterval(number,expression) |
Paramètres
| Nom | Description |
|---|---|
| number | Ce paramètre permet d'indiquer le nombre à convertir en intervalle |
| expression | Ce paramètre permet d'indiquer l'unité à convertir |
Description
Cette fonction permet de convertir un nombre en intervalle de temps d'année et mois spécifié.
Remarques
- La fonction NUMTOYMINTERVAL est idéale pour manipuler les dates de manière souple, en ajoutant ou soustrayant un nombre variable d'années ou de mois. Elle simplifie les opérations nécessitant des intervalles calendaires sans avoir à gérer manuellement les ajustements de mois ou d'années.
- Le paramètre number représente la quantité d'unités à convertir, par exemple 2 pour deux années ou 6 pour six mois. Ce paramètre doit être de type numérique et il peut être une constante, une variable ou une colonne issue d'une requête SQL.
- Le paramètre expression définit l'unité temporelle de l'intervalle, qui peut être soit 'YEAR' soit 'MONTH'. La chaîne de caractères fournie doit être en majuscules ou conforme aux règles de casse SQL, sinon une erreur peut survenir à l'exécution.
- La fonction retourne une valeur de type INTERVAL YEAR TO MONTH, ce qui permet de l'utiliser dans des opérations de calcul de dates avec des expressions du type SYSDATE + NUMTOYMINTERVAL(...). Elle est donc pleinement compatible avec les types DATE et TIMESTAMP dans Oracle.
- Cette fonction est particulièrement utile dans les calculs dynamiques de dates d'échéance, comme dans les systèmes de prêts, d'abonnement ou de planification, où les intervalles d'années ou de mois varient en fonction d'un paramètre utilisateur ou de configuration.
- Contrairement aux intervalles jour/heure, l'intervalle produit par NUMTOYMINTERVAL ne tient pas compte des jours ou des heures, ce qui permet une représentation plus simple et plus conforme aux besoins calendaires (exemple : ajouter 1 an = même jour l'année suivante).
- NUMTOYMINTERVAL ne permet pas d'additionner plusieurs unités différentes en une seule expression. Par exemple, il faut deux appels séparés pour ajouter 1 an et 6 mois à une date (avec deux NUMTOYMINTERVAL ou un ajout combiné d'intervalles).
- Une erreur peut se produire si l'unité passée en paramètre est invalide, comme 'YEARS' ou 'MOIS' au lieu de 'YEAR' ou 'MONTH'. Il est donc important de s'assurer que la chaîne passée est exactement conforme aux valeurs attendues.
- Les valeurs négatives sont autorisées pour le paramètre number, ce qui permet de soustraire un intervalle d'une date. Par exemple, NUMTOYMINTERVAL(-1, 'YEAR') peut être utilisé pour calculer une date un an en arrière.
- Lorsqu'elle est utilisée dans des clauses SELECT ou WHERE, la fonction permet de créer des filtres temporels puissants, comme WHERE date_col >= SYSDATE - NUMTOYMINTERVAL(3, 'MONTH') pour récupérer les 3 derniers mois.
- Cette fonction peut être combinée avec d'autres fonctions SQL comme ADD_MONTHS, SYSDATE, ou TRUNC pour créer des expressions temporelles encore plus précises et modulables selon les besoins métier ou fonctionnels.
- Elle est particulièrement précieuse pour les systèmes multilingues ou multi-unités, car elle permet de traiter les intervalles d'années/mois de manière standardisée, sans devoir adapter le code pour différentes unités de temps.
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015