NEXT_DAY |
Prochain jour |
|---|---|
| Oracle Database SQL | Oracle 9i ou supérieure |
Syntaxe
| next_day(date,weekday) |
Paramètres
| Nom | Description | |
|---|---|---|
| date | Ce paramètre permet d'indiquer la date du prochain jour de semaine. | |
| weekday | Ce paramètre permet d'indiquer le prochain jour de semaine : | |
| Valeur | Description | |
| SUNDAY | Cette valeur permet d'indiquer qu'il faut trouver le premier Dimanche supérieur à la date spécifié. | |
| MONDAY | Cette valeur permet d'indiquer qu'il faut trouver le premier Lundi supérieur à la date spécifié. | |
| TUESDAY | Cette valeur permet d'indiquer qu'il faut trouver le premier Mardi supérieur à la date spécifié. | |
| WEDNESDAY | Cette valeur permet d'indiquer qu'il faut trouver le premier Mercredi supérieur à la date spécifié. | |
| THURSDAY | Cette valeur permet d'indiquer qu'il faut trouver le premier Jeudi supérieur à la date spécifié. | |
| FRIDAY | Cette valeur permet d'indiquer qu'il faut trouver le premier Vendredi supérieur à la date spécifié. | |
| SATURDAY | Cette valeur permet d'indiquer qu'il faut trouver le premier Samedi supérieur à la date spécifié. | |
Description
Cette fonction permet de retourner la date du jour de la semaine spécifié correspondant à la date.
Remarques
- Utilité dans la planification : La fonction NEXT_DAY est particulièrement utile dans les systèmes de planification ou de gestion de calendrier. Elle permet de calculer automatiquement la date du prochain jour spécifique de la semaine, à partir d'une date donnée, ce qui simplifie la génération d'événements récurrents.
- Gestion intuitive des jours : Grâce à le paramètre weekday, il est possible de spécifier le nom du jour (par exemple MONDAY, FRIDAY,...). Ce paramètre accepte des chaînes de caractères en anglais, ce qui rend la fonction lisible et facile à comprendre même pour les développeurs non francophones.
- Calcul toujours vers le futur : La fonction retourne toujours une date ultérieure à celle fournie, jamais égale. Par exemple, si on utilise NEXT_DAY(SYSDATE, 'WEDNESDAY') un mercredi, elle retournera le mercredi suivant, et non le jour même.
- Compatibilité avec plusieurs formats : Même si la fonction attend les noms de jours en anglais, Oracle est capable d'interpréter les noms de jours localisés si la session est configurée avec une langue différente, grâce aux paramètres NLS comme NLS_DATE_LANGUAGE.
- Complémentarité avec d'autres fonctions temporelles : NEXT_DAY peut être combinée avec TRUNC, SYSDATE, ou ADD_MONTHS pour construire des expressions temporelles complexes. Par exemple, pour calculer le prochain lundi du mois prochain, on peut imbriquer les appels.
- Attention au format de saisie : Si la chaîne représentant le jour de la semaine ne correspond pas exactement au nom attendu (par exemple, une faute de frappe comme MONDY), Oracle retournera une erreur. Il est donc recommandé de valider les chaînes avant exécution.
- Indispensable en automatisation des rapports : Dans les systèmes de reporting hebdomadaire ou de génération automatique de rapports, NEXT_DAY permet de programmer des dates dynamiques, comme "le prochain vendredi" pour les rapports de fin de semaine.
- Intégration avec des dates spécifiques : On peut aussi utiliser NEXT_DAY avec des dates fixes pour générer des échéanciers, par exemple : NEXT_DAY(TO_DATE('01-SEP-2025','DD-MON-YYYY'), 'TUESDAY') permet de trouver le premier mardi suivant une date déterminée.
- Comportement avec types DATE ou TIMESTAMP : La fonction fonctionne aussi bien avec des colonnes de type DATE qu'avec des expressions ou fonctions retournant une date. Cependant, si utilisée avec un TIMESTAMP, Oracle effectuera un cast implicite vers DATE.
- Excellente lisibilité du code SQL : L'utilisation de NEXT_DAY améliore la lisibilité des requêtes SQL contenant de la logique temporelle. Elle évite les calculs manuels compliqués et rend les intentions du code plus claires.
- Peut servir dans les filtres WHERE : On peut utiliser NEXT_DAY dans une clause WHERE pour filtrer des événements à venir, par exemple : WHERE event_date = NEXT_DAY(SYSDATE, 'MONDAY'), ce qui est utile pour les alertes ou rappels conditionnels.
- Performance équivalente à d'autres fonctions date : NEXT_DAY est une fonction légère en termes de performance. Elle est optimisée dans le moteur Oracle et n'introduit pas de surcharge particulière, même dans des requêtes exécutées fréquemment ou sur de larges volumes.
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015