![]() |
|
Fonctions calendaires de date et d'heureLes fonctions date/heure du calendrier manipulent les données aux formats de date, d'heure et d'horodatage. (Le type de données Horodatage est une combinaison de date et d'heure.) Toutes les fonctions de date sont certifiées ISO 8601. Cela concerne particulièrement les fonctions telles que Week_Of_Year et Week_Of_Quarter dans lesquelles la première semaine de l'année est représentée par la première semaine complète comprenant un Jeudi. Pour des informations détaillées sur le mode de calcul des fonctions de date, consultez la norme ISO 8601. Current_DateRenvoie la date du jour. La date est déterminée par l'ordinateur. La valeur ne contient pas de composant horaire. Syntaxe : CURRENT_DATE Current_TimeRenvoie l'heure actuelle. L'heure est déterminée par l'ordinateur. La valeur ne comporte pas de composant de date. Remarque : cette fonction affiche l'heure d'exécution du rapport. L'utilisation de cette fonction sur un domaine d'analyse évite de placer le rapport en mémoire cache, ce qui réduit la performance. Syntaxe : CURRENT_TIME (n) où :
Current_TimeStampRenvoie la date/l'horodatage actuels. L'horodatage est déterminé par l'ordinateur. Remarque : cette fonction affiche l'heure d'exécution du rapport. L'utilisation de cette fonction sur un domaine d'analyse évite de placer le rapport en mémoire cache, ce qui réduit la performance. Syntaxe : CURRENT_TIMESTAMP (n) où :
Day_Of_QuarterRenvoie un nombre (compris entre 1 et 92) qui correspond au jour du trimestre pour la date spécifiée. Syntaxe : DAY_OF_QUARTER (expression_date) où :
DayNameRenvoie le nom du jour de la semaine (en anglais) pour la date spécifiée. Syntaxe : DAYNAME (date_expression) où :
DayOfMonthRenvoie le nombre qui correspond au jour du mois pour la date spécifiée. Syntaxe : DAYOFMONTH (date_expression) où :
DayOfWeekRenvoie un nombre (compris entre 1 et 7) qui correspond au jour de la semaine pour la date spécifiée. Le nombre 1 correspond à dimanche et le nombre 7, à samedi. Syntaxe : DAYOFWEEK (date_expression) où :
DayOfYearRenvoie un nombre (compris entre 1 et 366) qui correspond au jour de l'année pour la date spécifiée. Syntaxe : DAYOFYEAR (date_expression) où :
HourRenvoie un nombre (compris entre 0 et 23) qui correspond à l'heure pour une heure spécifiée. Par exemple, 0 correspond à minuit et 23, à 23 heures. Syntaxe : HOUR (time_expression) où :
MinuteRenvoie un nombre (compris entre 0 et 59) qui correspond à la minute pour une heure spécifiée. Syntaxe : MINUTE (time_expression) où :
MonthRenvoie un nombre (compris entre 1 et 12) qui correspond au mois pour une date spécifiée. Syntaxe : MONTH (date_expression) où :
Month_Of_QuarterRenvoie le nombre (compris entre 1 et 3) qui correspond au mois du trimestre pour la date spécifiée. Syntaxe : MONTH_OF_QUARTER (expression_date) où :
MonthNameRenvoie le nom du mois (en anglais) pour la date spécifiée. Syntaxe : MONTHNAME (date_expression) où :
NowRenvoie l'horodatage actuel. La fonction NOW équivaut à la fonction CURRENT_TIMESTAMP. Remarque : cette fonction affiche l'heure d'exécution du rapport. L'utilisation de cette fonction sur un domaine d'analyse évite de placer le rapport en mémoire cache, ce qui réduit la performance. Syntaxe : NOW () Quarter_Of_YearRenvoie le nombre (compris entre 1 et 4) qui correspond au trimestre de l'année pour la date spécifiée. Syntaxe : QUARTER_OF_YEAR (expression_date) où :
SecondRenvoie le nombre (compris entre 0 et 59) qui correspond aux secondes pour une heure spécifiée. Syntaxe : SECOND (time_expression) où :
TimestampAddLa fonction TimestampAdd ajoute un nombre d'intervalles spécifiés à un horodatage donné. Elle renvoie un seul horodatage. Syntaxe : TimestampAdd (intervalle, entier_expression, horodatage_expression) où :
Si cette fonction transmet une expression entier nul ou horodatage nul, elle renverra une valeur nulle. Dans le scénario le plus simple, cette fonction ajoute simplement le nombre entier spécifié (entier_expression) au composant approprié de l'horodatage, selon l'intervalle donné. Ajouter une semaine équivaut à ajouter sept jours tandis qu'ajouter un trimestre équivaut à ajouter trois mois. Un nombre entier négatif donne lieu à une soustraction (pour remonter dans le temps). Si vous indiquez une quantité trop importante du composant (plus de 60 secondes, 24 heures, douze mois, etc.), le système ajoute la quantité appropriée au composant suivant. Par exemple, si vous ajoutez des jours à un horodatage, cette fonction tient compte du nombre de jours excédentaires dans un mois donné (y compris les années bissextiles, où février compte 29 jours). Si vous ajoutez des mois à un horodatage, cette fonction vérifie que l'horodatage qui en résulte compte un nombre suffisant de jour pour le composant jour. Par exemple, l'ajout d'un mois à la date du 31/05/2000 ne donne pas 31/06/2000, parce que le mois de juin ne compte pas 31 jours. Cette fonction réduit le composant Jour au dernier jour du mois, à savoir 30/06/2000. Le même problème se pose lorsque vous ajoutez l'année à un horodatage qui compte le mois de février et 29 jours (c'est-à-dire, le dernier jour de février dans une année bissextile). Si l'horodatage qui en résulte ne tombe pas une année bissextile, la fonction réduit le composant Jour à 28. Ci-dessous figurent quelques exemples de la fonction TimestampAdd : L'exemple de code suivant demande l'horodatage correspondant lorsque l'on ajoute 3 jours à 27/02/2000 14:30:00. Etant donné que le mois de février 2000 est une année bissextile, la fonction renvoie l'horodatage suivant : 01/03/2000 14:30:00. TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP'2000-02-27 14:30:00') L'exemple de code suivant demande l'horodatage correspondant lorsque l'on ajoute 7 mois à 31/07/1999 0:0:0. La fonction renvoie l'horodatage suivant : 29/02/2000 00:00:00. Le composant Jour a été réduit à 29 puisque le mois de février est plus court. TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP'1999-07-31 00:00:00') L'exemple de code suivant demande l'horodatage correspondant lorsque l'on ajoute 25 minutes à 31/07/2000 23:35:00. La fonction renvoie l'horodatage suivant : 01/08/2000 00:00:00. L'excédent a été propagé sur le composant Mois. TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP'2000-07-31 23:35:00') TimeStampDiffLa fonction TimestampDiff renvoie le nombre total d'intervalles spécifiés entre deux horodatages. Syntaxe : TimestampDiff (intervalle, horodatage_expression1, horodatage_expression2) où :
Si cette fonction transmet une expression horodatage nul, elle renverra une valeur nulle. Cette fonction détermine d'abord le composant horodatage qui correspond à l'intervalle spécifié. Par exemple, SQL_TSI_DAY correspond au composant Jour et SQL_TSI_MONTH, au composant Mois. La fonction examine ensuite les composants de niveau supérieur des deux horodatages afin de calculer le nombre total d'intervalles pour chaque horodatage. Par exemple, si l'intervalle spécifié correspond au composant mois, la fonction calcule le nombre total de mois pour chaque horodatage en ajouter le composant mois et douze fois le composant année. Enfin, la fonction soustrait le nombre total d'intervalles du premier horodatage du nombre total d'intervalles du second horodatage. Pour calculer la différence en jours, la fonction tronque les valeurs d'heure des deux expressions d'horodatage puis soustrait les valeurs de date. Pour calculer la différence en semaines, la fonction calcule la différence en jours, divise par sept puis arrondit. Pour calculer la différence en trimestres, la fonction calcule la différence en mois, divise par trois puis arrondit. Pour calculer la différence en années, la fonction calcule la différence en mois, divise par douze puis arrondit. Exemples de fonction TimestampDiff et de résultatsL'exemple de code suivant demande la différence en jours entre les horodatages 31/07/1998 23:35:00 et 01/04/2000 14:24:00. La fonction renvoie la valeur 610. Notez qu'elle ajoute un jour puisque 2000 est une année bissextile. TimestampDIFF(SQL_TSI_DAY, TIMESTAMP'1998-07-31 23:35:00', TIMESTAMP'2000-04-01 14:24:00') Week_Of_QuarterRenvoie un nombre (compris entre 1 et 13) qui correspond à la semaine du trimestre pour la date spécifiée. Syntaxe : WEEK_OF_QUARTER (expression_date) où :
Week_Of_YearRenvoie un nombre (compris entre 1 et 53) qui correspond à la semaine de l'année pour la date spécifiée. Syntaxe : WEEK_OF_YEAR (expression_date) où :
AnnéeRenvoie l'année pour la date spécifiée. Syntaxe : YEAR (date_expression) où :
Exemple : YEAR (CURRENT_DATE) |
Publié en août 2018 | Copyright © 2005, 2018, Oracle. Tous droits réservés. Legal Notices. |