Fonctions macro date et heure (FireDAC)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Prétraitement du texte des commandes (FireDAC)



Le tableau suivant présente les fonctions macro date et heure :

Fonction Description Moteur d'expression local
CURRENT_DATE( ) Retourne la date en cours. +
CURRENT_TIME[(time-precision)] Retourne l'heure locale en cours. L'argument time-precision détermine la précision en secondes de la valeur retournée. +
CURRENT_TIMESTAMP [(timestamp-precision)] Retourne la date locale et l'heure locale en cours sous la forme d'une valeur d'horodatage. L'argument time-precision détermine la précision en secondes de la valeur d'horodatage retournée. +
CURDATE( ) Retourne la date en cours. +
CURTIME( ) Retourne l'heure locale en cours. +
DAYNAME(date_exp) Retourne une chaîne de caractères contenant le nom du jour spécifique à la source de données (par exemple, de Sunday à Saturday ou de Sun. à Sat. pour une source de données utilisant l'anglais, ou de Sonntag à Samstag pour une source de données utilisant l'allemand) pour la partie jour de date_exp. +
DAYOFMONTH(date_exp) Retourne le jour du mois en se basant sur le champ mois dans date_exp sous la forme d'un entier situé entre 1 et 31. +
DAYOFWEEK(date_exp) Retourne le jour de la semaine en se basant sur le champ semaine dans date_exp sous la forme d'un entier situé entre 1 et 7, où 1 représente dimanche. +
DAYOFYEAR(date_exp) Retourne le jour de l'année en se basant sur le champ année dans date_exp sous la forme d'un entier situé entre 1 et 366. +
EXTRACT(extract-field, extract-source) Retourne la partie extract-field de extract-source. L'argument extract-source est une expression d'horodatage ou d'intervalle. L'argument extract-field peut être l'un des mots clés suivants
  • YEAR
  • MONTH
  • DAY
  • HOUR
  • MINUTE
  • SECOND

La précision de la valeur retournée est définie par l'implémentation. L'échelle est de 0 sauf si SECOND est spécifié, auquel cas l'échelle n'est pas inférieure à la précision en fractions de secondes du champ extract-source.

+
HOUR(time_exp) Retourne l'heure en se basant sur le champ heure dans time_exp sous la forme d'un entier situé entre 0 et 23. +
MINUTE(time_exp) Retourne les minutes en se basant sur le champ minute dans time_exp sous la forme d'un entier situé entre 0 et 59. +
MONTH(date_exp) Retourne le mois en se basant sur le champ mois dans date_exp sous la forme d'un entier situé entre 1 et 12. +
MONTHNAME(date_exp) Retourne une chaîne de caractères contenant le nom du mois spécifique à la source de données (par exemple, de January à December ou de Jan. à Dec. pour une source de données utilisant l'anglais, ou de Januar à Dezember pour une source de données utilisant l'allemand) pour la partie mois de date_exp. +
NOW( ) Retourne la date et l'heure en cours sous la forme d'une valeur d'horodatage. +
QUARTER(date_exp) Retourne le trimestre dans date_exp sous la forme d'un entier situé entre 1 et 4, où 1 représente la période du 1er janvier au 31 mars. +
SECOND(time_exp) Retourne les secondes en se basant sur le champ seconde dans time_exp sous la forme d'un entier situé entre 0 et 59. +
TIMESTAMPADD(interval, integer_exp, timestamp_exp) Retourne l'horodatage calculé en ajoutant les intervalles integer_exp de type intervalle à timestamp_exp. Les valeurs intervalle valides sont les mots clés suivants
  • FRAC_SECOND (*)
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

où les fractions de seconde sont exprimées en milliardièmes de seconde. Par exemple, l'instruction SQL suivante retourne le nom de chaque employé et la date anniversaire de sa première année de recrutement : SELECT NAME, {fn TIMESTAMPADD(‘YEAR’, 1, HIRE_DATE)} FROM EMPLOYEES Si timestamp_exp est une valeur heure et que l'intervalle spécifie des jours, des semaines, des mois, des trimestres ou des années, la partie date de timestamp_exp est définie sur la date en cours avant de calculer l'horodatage. Si timestamp_exp est une valeur date et que l'intervalle spécifie des fractions de secondes, des secondes, des minutes ou des heures, la partie heure de timestamp_exp est définie sur 0 avant de calculer l'horodatage.

+
TIMESTAMPDIFF(interval, timestamp_exp1, timestamp_exp2) Retourne le nombre entier d'intervalles de type intervalle en plus dans timestamp_exp2 par rapport à timestamp_exp1. Les valeurs intervalle valides sont les mots clés suivants
  • FRAC_SECOND (*)
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

où les fractions de seconde sont exprimées en milliardièmes de seconde. Par exemple, l'instruction SQL suivante retourne le nom de chaque employé et le nombre d'années écoulées depuis son recrutement : SELECT NAME, {fn TIMESTAMPDIFF(‘YEAR’, {fn CURDATE()}, HIRE_DATE)} FROM EMPLOYEES. Si l'expression d'horodatage est une valeur heure et que l'intervalle spécifie des jours, des semaines, des mois, des trimestres ou des années, la partie date de cet horodatage est définie sur la date en cours avant de calculer la différence entre les horodatages. Si l'expression d'horodatage est une valeur date et que l'intervalle spécifie des fractions de secondes, des secondes, des minutes ou des heures, la partie heure de cet horodatage est définie sur 0 avant de calculer la différence entre les horodatages.

+
WEEK(date_exp) Retourne la semaine de l'année en se basant sur le champ semaine dans date_exp sous la forme d'un entier situé entre 1 et 53. +
YEAR(date_exp) Retourne l'année en se basant sur le champ année dans date_exp sous la forme d'un entier. L'intervalle dépend de la source de données. +

(*) Certains SGBD ne parviennent pas à utiliser FRAC_SECOND.