FreeAdhocUDF pour InterBase et FireBird in deutschin englishen françaisen españolin italianoa português
homeprevious pagecontentnext pagelast page Seite empfehlen • advice website • Mailing-Liste • mailinglist • liste de diffusionwas ich vermisse • what I missed •eMail Kommentar • eMail commentprintsitemap
Fonctions de dates et de temps 103 fonctions
Avertissement
Calculs 11 fonctions
Recherches 49 fonctions
Formatages 18 fonctions
Comparaisons 4 fonctions
Conversions 7 fonctions
Fête 14 fonctions
Depuis FireBird 2.0, au lieu de 0 donne ‘’(vide) ou ’17.11.1858’ <null>
á partir de InterBase 6.0 on peut remplacer par la fonction SQL incorporée
á partir de FireBird 1.0 on peut remplacer par la fonction SQL incorporée
á partir de FireBird 2.1 on peut remplacer par la fonction SQL incorporée
Lors du RETURN: FREE_IT, sauf indication contraire
Les TestSQL avec NULL ne sont opérationnels que sous FireBird 2.0
 
Fonctions de dates et de temps: Avertissement
 
Il existe différents systèmes pour le calcul de dates. Les principaux sont
- La date julienne (JJ pour jour julien ou JD pour Julian Day),
- La date julienne modifiée (MJD),
- La date julienne de Dublin (DJD),
- La date ANSI,
- La date UNIX selon la norme POSIX.
 
La date julienne (JD) donne le temps qui s’est écoulé depuis midi du 1er janvier 4713 av. J.-C. selon le calendrier julien proleptique ou le 24 novembre 4714 av. J.-C. selon le calendrier grégorien proleptique, exprimé en jours décimaux. Ainsi, le 1er janvier 2000 à 12 :00 h s’exprime par la valeur 2.451.545,0.
Le système de jours juliens a été conçu pour fournir un système simple pour les dates qui pourraient être employées en travaillant avec des différents calendriers et unifier différentes chronologies historiques. On l’appelle également le jour julien astronomique (AJD).
La version la mieux connue du jour julien est le jour julien chronologique (CJD), une modification du jour julien astronomique, où le point de départ est à minuit du 1er janvier 4713 av. J.-C. plutôt que midi.
L’AJD s’emploie en temps universel coordonné (UTC) et est identique pour tous les fuseaux horaires et est indépendant de l’heure d’été. Le CJD, par contre, change avec les fuseaux horaires et tient compte de l’heure d’été locale.

La date julienne modifiée (MJD) fut introduite en 1950 par les scientifiques afin de simplifier les calculs astronomiques. On a MJD = AJD – 2.400.000,5. Les jours juliens modifiés commencent donc le 17 novembre 1858 à minuit. Ils sont basés sur le temps universel et non en temps local. La date julienne modifiée a été développée à l’occasion du calcul de la trajectoire du Sputnik sur IBM 704 (machine 36-bit). Digital Equipment Corporation (DEC) utilisait la MJD dans son système d’exploitation VMS et dans sa base de données Rdb/VMS. L’artisan de ce développement, Jim Starkey, quitta DEC et développa sa propre base de donnés RDBMS (relational database management system) sous le nom de Groton DataBase. C’est de là que vient InterBase.
La MJD fut utilisée principalement en géodésie, en géophysique et en technique spatiale, mais ne fut pas conservée pour l’astronomie.

La date julienne de Dublin (DJD) est une autre version de la date julienne qui commence le comptage à l’année 1900 (cas de Microsoft Excel, Lotus-123, Delphi) ou à l’année 1904 (Microsoft Excel pour Mac OS). Comme le comptage commence à 1 en non à 0, le point 0 correct est le 31 décembre 1899 à minuit (0:00 h). Une confusion s’est cependant introduite par le fait que certains programmes ont par erreur considéré l’année 1900 comme bissextile, fournissant ainsi des dates erronées jusqu’au 28 février 1900. Dans ces cas l’origine était donc le 30 décembre 1899 à minuit.

La date ANSI considère comme jour 1 le 1er janvier 1601. C’est le système utilisé en langage COBOL.

La date UNIX est une définition simple du temps introduite en 1969 pour le système d’exploitation UNIX et considérée comme une norme POSIX. Dans les premiers temps du développement de UNIX, la définition fut plusieurs fois modifiée. Depuis plusieurs décennies, toutefois, elle est restée la même. Cette date compte le nombre entier de secondes depuis le 1er janvier 1970 à minuit (0 :00 h) en temps universel (UTC). On appelle aussi cette origine de temps The EPOCH.

InterBase et FireBird utilisent la date julienne modifiée qui définit le 17.11.1858 comme le jour 0.
nach oben • go top •
 
Fonctions de dates et de temps: Calculs
F_ADDYEAR Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF

remplaçable par DATEADD
Entrypoint addyear
Entrée TIMESTAMP
INTEGER
Date avec heure optionnelle
Nombre d’années à ajouter
Sortie TIMESTAMP Ajoute à la date le nombre d’années spécifié
Si le paramètre 2 est négatif, les années sont soustraites.
Si l’année considérée n’est pas bissextile, le 1er mars est renvoyé au lieu du 29 février.
TestSQL
SELECT '01.10.2008 15:03:01' AS ISCORRECT, F_ADDYEAR('01.10.2005 15:03:01', 3) FROM RDB$DATABASE;
SELECT '01.10.2002 15:03:01' AS ISCORRECT, F_ADDYEAR('01.10.2005 15:03:01', -3) FROM RDB$DATABASE;
SELECT '29.02.2008 15:03:01' AS ISCORRECT, F_ADDYEAR('29.02.2004 15:03:01', 4) FROM RDB$DATABASE;
SELECT '01.03.2009 15:03:01' AS ISCORRECT, F_ADDYEAR('29.02.2008 15:03:01', 1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ADDYEAR(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ADDMONTH Fonction de adhoc

remplaçable par DATEADD
Entrypoint addmonth
Entrée TIMESTAMP
INTEGER
Date avec heure optionnelle
Nombre de mois à ajouter
Sortie TIMESTAMP Ajoute à la date le nombre de mois spécifié
Si le paramètre 2 est négatif, les mois sont soustraits.
TestSQL
SELECT '01.03.2006 15:03:01' AS ISCORRECT, F_ADDMONTH('01.10.2005 15:03:01', 5) FROM RDB$DATABASE;
SELECT '01.07.2005 15:03:01' AS ISCORRECT, F_ADDMONTH('01.10.2005 15:03:01', -3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ADDMONTH(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ADDWEEK Fonction de adhoc

remplaçable par DATEADD
Entrypoint addweek
Entrée TIMESTAMP
INTEGER
Date avec heure optionnelle
Nombre de semaines à ajouter
Sortie TIMESTAMP Ajoute à la date le nombre de semaines spécifié
Si le paramètre 2 est négatif, les semaines sont soustraites.
TestSQL
SELECT '22.10.2005 15:03:01' AS ISCORRECT, F_ADDWEEK('01.10.2005 15:03:01', 3) FROM RDB$DATABASE;
SELECT '10.09.2005 15:03:01' AS ISCORRECT, F_ADDWEEK('01.10.2005 15:03:01', -3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ADDWEEK(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ADDDAY Fonction de adhoc

remplaçable par DATEADD
Entrypoint addday
Entrée TIMESTAMP
INTEGER
Date avec heure optionnelle
Nombre de jours à ajouter
Sortie TIMESTAMP Ajoute à la date le nombre de jours spécifié
Si le paramètre 2 est négatif, les jours sont soustraits.
TestSQL
SELECT '04.10.2005 15:03:01' AS ISCORRECT, F_ADDDAY('01.10.2005 15:03:01', 3) FROM RDB$DATABASE;
SELECT '28.09.2005 15:03:01' AS ISCORRECT, F_ADDDAY('01.10.2005 15:03:01', -3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ADDDAY(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ADDHOUR Fonction de adhoc

remplaçable par DATEADD
Entrypoint addhour
Entrée TIMESTAMP
INTEGER
Date avec heure optionnelle
Nombre d’heures à ajouter
Sortie TIMESTAMP Ajoute à la date et heure le nombre d’heures spécifié
Si le paramètre 2 est négatif, les heures sont soustraites.
TestSQL
SELECT '01.10.2005 18:03:01' AS ISCORRECT, F_ADDHOUR('01.10.2005 15:03:01', 3) FROM RDB$DATABASE;
SELECT '01.10.2005 12:03:01' AS ISCORRECT, F_ADDHOUR('01.10.2005 15:03:01', -3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ADDHOUR(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ADDMINUTE Fonction de adhoc

remplaçable par DATEADD
Entrypoint addminute
Entrée TIMESTAMP
INTEGER
Date avec heure optionnelle
Nombre de minutes à ajouter
Sortie TIMESTAMP Ajoute à la date et heure le nombre de minutes spécifié
Si le paramètre 2 est négatif, les minutes sont soustraites.
TestSQL
SELECT '01.10.2005 15:06:01' AS ISCORRECT, F_ADDMINUTE('01.10.2005 15:03:01', 3) FROM RDB$DATABASE;
SELECT '01.10.2005 15:00:01' AS ISCORRECT, F_ADDMINUTE('01.10.2005 15:03:01', -3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ADDMINUTE(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ADDSECOND Fonction de adhoc

remplaçable par DATEADD
Entrypoint addsecond
Entrée TIMESTAMP
INTEGER
Date avec heure optionnelle
Nombre de secondes à ajouter
Sortie TIMESTAMP Ajoute à la date et heure le nombre de secondes spécifié
Si le paramètre 2 est négatif, les secondes sont soustraites.
TestSQL
SELECT '01.10.2005 15:03:04' AS ISCORRECT, F_ADDSECOND('01.10.2005 15:03:01', 3) FROM RDB$DATABASE;
SELECT '01.10.2005 15:02:58' AS ISCORRECT, F_ADDSECOND('01.10.2005 15:03:01', -3) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ADDSECOND(NULL, NULL) FROM RDB$DATABASE;  
nach oben • go top •
F_INCDATE Entrée/Sortie compatibles avec rFunc (INCDATE)
Entrypoint incdate
Entrée TIMESTAMP
INTEGER
INTEGER
INTEGER
Date avec heure optionnelle
Nombre de jours à ajouter
Nombre de mois à ajouter
Nombre d’années à ajouter
Sortie TIMESTAMP
Ajoute à la date et heure le nombre de jours, mois et années spécifié
Si le paramètre est négatif, sont soustraites.
TestSQL
SELECT '02.11.2006 15:03:05' AS ISCORRECT, F_INCDATE('01.10.2005 15:03:05', 1, 1, 1) FROM RDB$DATABASE;
SELECT '31.08.2004 15:03:05' AS ISCORRECT, F_INCDATE('01.10.2005 15:03:05', -1, -1, -1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_INCDATE(NULL, NULL, NULL, NULL) FROM RDB$DATABASE;  
nach oben • go top •
F_INCDATETIME Entrée/Sortie compatibles avec rFunc (INCDATETIME)
Entrypoint incdatetime
Entrée TIMESTAMP
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
Date avec heure optionnelle
Nombre de jours à ajouter
Nombre de mois à ajouter
Nombre d’années à ajouter
Nombre d’heures à ajouter
Nombre de minutes à ajouter
Nombre de secondes à ajouter
Sortie TIMESTAMP
Ajoute à la date et heure le nombre de jours, mois, années, heures, minutes et secondes spécifié
Si le paramètre est négatif, sont soustraites.
TestSQL
SELECT '02.11.2006 16:04:06' AS ISCORRECT, F_INCDATETIME('01.10.2005 15:03:05', 1, 1, 1, 1, 1, 1) FROM RDB$DATABASE;
SELECT '02.11.2006 14:02:04' AS ISCORRECT, F_INCDATETIME('01.10.2005 15:03:05', 1, 1, 1, -1, -1, -1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ADDSECOND(NULL, NULL, NULL, NULL, NULL, NULL, NULL) FROM RDB$DATABASE;  
nach oben • go top •
F_ADDPERIOD Fonction de adhoc
Entrypoint addperiod
Entrée CSTRING(254)
CSTRING(254)
Durée 1 au format [d:]h:m:s
Durée 2 au format [d:]h:m:s
Sortie CSTRING(254) Durée 1 plus durée 2
Les durées peuvent être données sous deux formats: une ou deux positions (dd:hh:mm:ss ou d:h:m:s).
Les durées négatives s’indiquent par un ‹-› en tête de la première section.
Les durées peuvent s’exprimer au format Jour:Heure:Minute:Seconde (4 sections) et Heure:Minute:Seconde (3 sections).
S’il y a moins de 3 sections ou s’il y a d’autres caractères en tête, le résultat sera respectivement <null> ou une chaîne vide.
Des entrées comme par exemple '0:26:0:0' au lieu de '1:2:0:0' pour 26 heures sont acceptées.
Le résultat en sortie est toujours au format Jour:Heure:Minute:Seconde (4 sections de 2 positions) dd:hh:mm:ss.
TestSQL
SELECT '00:01:25:10' AS ISCORRECT, F_ADDPERIOD('0:1:10:0', '0:0:15:10') FROM RDB$DATABASE;
SELECT '00:01:25:10' AS ISCORRECT, F_ADDPERIOD('01:10:00', '00:15:10') FROM RDB$DATABASE;
SELECT '00:00:54:50' AS ISCORRECT, F_SUBPERIOD('0:1:10:0', '0:0:15:10'), F_ADDPERIOD('0:1:10:0', '-0:0:15:10') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ADDPERIOD(NULL, NULL) FROM RDB$DATABASE;  
nach oben • go top •
F_SUBPERIOD Fonction de adhoc
Entrypoint subperiod
Entrée CSTRING(254)
CSTRING(254)
Durée 1 au format [d:]h:m:s
Durée 2 au format [d:]h:m:s
Sortie CSTRING(254) Durée 1 déduction faite de la durée 2
Les durées peuvent être données sous deux formats: une ou deux positions (dd:hh:mm:ss ou d:h:m:s).
Les durées négatives s’indiquent par un ‹-› en tête de la première section.
Les durées peuvent s’exprimer au format Jour:Heure:Minute:Seconde (4 sections) et Heure:Minute:Seconde (3 sections).
S’il y a moins de 3 sections ou s’il y a d’autres caractères en tête, le résultat sera respectivement <null> ou une chaîne vide.
Des entrées comme par exemple '0:26:0:0' au lieu de '1:2:0:0' pour 26 heures sont acceptées.
Le résultat en sortie est toujours au format Jour:Heure:Minute:Seconde (4 sections de 2 positions) dd:hh:mm:ss.
Si la durée 2 est plus longue que la durée 1, le résultat est négatif et est fourni avec un signe ‹-› devant la première section.
TestSQL
SELECT '00:00:54:50' AS ISCORRECT, F_SUBPERIOD('0:1:10:0', '0:0:15:10') FROM RDB$DATABASE;
SELECT '-00:00:54:50' AS ISCORRECT, F_SUBPERIOD('0:0:15:10', '0:1:10:0') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SUBPERIOD(NULL, NULL) FROM RDB$DATABASE; 
nach oben • go top •
 
Fonctions de dates et de temps: Recherches
Pour le calcul de la différence entre deux dates il existe 3 méthodes de base (valables pour toutes les versions de IB et FB):
  • si l’on désire un résultat négatif lorsque la première date donnée est plus tardive que la seconde
    • utiliser F_AGEIN avec point d’entrée (entrypoint) agein…
  • si l’on désire un résultat <null> lorsque la première date donnée est plus tardive que la seconde
    • utiliser F_AGEIN…N avec point d’entrée (entrypoint) agein…null
  • si l’on désire uniquement un résultat positif, quelle que soit la date la plus tardive
    • utiliser F_BETWEEN avec point d’entrée (entrypoint) ...between
Entrée  TIMESTAMP
TIMESTAMP
Date avec heure optionnelle 1 (la plus ancienne des 2)
Date avec heure optionnelle 2 (la plus tardive des 2)
F_AGEINYEARS
Fonction de adhoc


remplaçable par DATEDIFF
Entrypoint ageinyears
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de d’années
F_AGEINYEARSN  Fonction de adhoc

remplaçable par DATEDIFF
Entrypoint ageinyearsnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de d’années
F_AGEINMONTHS
Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF


remplaçable par DATEDIFF
Entrypoint ageinmonths
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de mois
F_AGEINMONTHSN  Fonction de adhoc

remplaçable par DATEDIFF
Entrypoint ageinmonthsnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de mois
F_AGEINWEEKS
Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP


remplaçable par DATEDIFF
Entrypoint ageinweeks
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de semaines
Le calcul se base sur des semaines commençant le dimanche.
Si les deux dates sont dans la même semaine, le résultat est 0.
F_AGEINWEEKSISO
Fonction de adhoc
Entrypoint ageinweeksiso
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de semaines
Version ISO de F_AGEINWEEKS dans laquelle le premier jour de la semaine est le lundi.
Si les deux dates sont dans la même semaine, le résultat est 0.
F_AGEINWEEKSN  Fonction de adhoc

remplaçable par DATEDIFF
Entrypoint ageinweeksnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de semaines
Le calcul se base sur des semaines commençant le dimanche.
Si les deux dates sont dans la même semaine, le résultat est 0.
F_AGEINWEEKSNISO Fonction de adhoc


Entrypoint ageinweeksnulliso
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de semaines
Version ISO de F_AGEINWEEKSN dans laquelle le premier jour de la semaine est le lundi.
Si les deux dates sont dans la même semaine, le résultat est 0.
F_AGEINDAYS
Compatible avec FreeUDFLib, FreeUDFLib AvERP
Entrée/Sortie compatibles avec rFunc (DAYSBETWEEN)


remplaçable par DATEDIFF
Entrypoint ageindays
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de jours
F_AGEINDAYSN  Fonction de adhoc

remplaçable par DATEDIFF
Entrypoint ageindaysnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de jours
F_AGEINHOURS
Fonction de adhoc


remplaçable par DATEDIFF
Entrypoint ageinhours
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de d’heures
F_AGEINHOURSN  Fonction de adhoc

remplaçable par DATEDIFF
Entrypoint ageinhoursnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de d’heures
F_AGEINMINUTES
Fonction de adhoc


remplaçable par DATEDIFF
Entrypoint ageinminutes
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de minutes
F_AGEINMINUTESN  Fonction de adhoc

remplaçable par DATEDIFF
Entrypoint ageinminutesnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de minutes
F_AGEINSECONDS
Fonction de adhoc


remplaçable par DATEDIFF
Entrypoint ageinseconds
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de secondes
F_AGEINSECONDSN  Fonction de adhoc

remplaçable par DATEDIFF
Entrypoint ageinsecondsnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de secondes
Option fondée sur la compatibilité.
Si la date 2 est plus ancienne que la date 1, le résultat est négatif. En vérité il devrait être nul puisqu’il n’y a pas d’âge négatif!
Utiliser F_AGEIN…N ou F_BETWEEN si l’on ne désire pas de résultat négatif.
TestSQL
SELECT 3 AS ISCORRECT, F_AGEINYEARS('01.01.2005 15:01:21','01.10.2008 15:01:01') FROM RDB$DATABASE;
SELECT -3 AS ISCORRECT, F_AGEINYEARS('01.01.2005 15:01:21','01.10.2002 15:01:01') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINYEARS(NULL, NULL) FROM RDB$DATABASE;
SELECT 9 AS ISCORRECT, F_AGEINMONTHS('01.01.2005 15:01:21','01.10.2005 15:01:01') FROM RDB$DATABASE;
SELECT -9 AS ISCORRECT, F_AGEINMONTHS('01.10.2005 15:01:21','01.01.2005 15:01:01') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINMONTHS(NULL, NULL) FROM RDB$DATABASE;
SELECT 20 AS ISCORRECT, F_AGEINWEEKS('01.01.2005 15:01:21','15.05.2005 15:01:21') FROM RDB$DATABASE;
SELECT -33 AS ISCORRECT, F_AGEINWEEKS('01.01.2006 15:01:21','15.05.2005 15:01:21') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINWEEKS(NULL, NULL) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_AGEINWEEKSISO('11.02.2008 15:01:21','17.02.2008 15:01:21'), F_AGEINWEEKS('11.02.2008 15:01:21','17.02.2008 15:01:21') FROM RDB$DATABASE;
SELECT 10 AS ISCORRECT, F_AGEINDAYS('01.10.2005 15:01:03','11.10.2005 15:04:03') FROM RDB$DATABASE;
SELECT -20 AS ISCORRECT, F_AGEINDAYS('01.10.2005 15:01:03','11.09.2005 15:04:03') FROM RDB$DATABASE;
SELECT 3 AS ISCORRECT, F_AGEINHOURS('01.10.2005 15:01:03','01.10.2005 18:01:03') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINDAYS(NULL, NULL) FROM RDB$DATABASE;
SELECT 14 AS ISCORRECT, F_AGEINMINUTES('01.10.2005 15:01:03','01.10.2005 15:15:03') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINHOURS(NULL, NULL) FROM RDB$DATABASE;
SELECT 14 AS ISCORRECT, F_AGEINMINUTES('01.10.2005 15:01:03','01.10.2005 15:15:03') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINMINUTES(NULL, NULL) FROM RDB$DATABASE;
SELECT 20 AS ISCORRECT, F_AGEINSECONDS('01.01.2005 15:01:01','01.01.2005 15:01:21') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINSECONDS(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
Entrée  TIMESTAMP
TIMESTAMP
INTEGER
INTEGER
INTEGER
INTEGER
Date 1 avec heure optionnelle (la plus ancienne des 2)
Date 2 avec heure optionnelle (la plus tardive des 2)
Valeur minimum
Valeur minimum utilisée (0 = non, 1 = oui)
Valeur maximum
Valeur maximum utilisée (0 = non, 1 = oui)
F_AGEINYEARSTHRESHOLD
Fonction de adhoc
Entrypoint ageinyearsthreshold
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier d’années
F_AGEINYEARSTHRESHOLDN Fonction de adhoc
Entrypoint ageinyearsthresholdnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier d’années
F_AGEINMONTHSTHRESHOLD
Compatible avec FreeUDFLib, FreeUDFLib AvERP
Entrypoint ageinmonththreshold
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de mois
F_AGEINMONTHSTHRESHOLDN Fonction de adhoc
Entrypoint ageinmonththresholdnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de mois
F_AGEINWEEKSTHRESHOLD
Compatible avec FreeUDFLib, FreeUDFLib AvERP
Entrypoint ageinweeksthreshold
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de semaines
Le calcul se base sur des semaines commençant le dimanche.
Si les deux dates sont dans la même semaine, le résultat est 0.
F_AGEINWEEKSTHRESHOLDISO
Fonction de adhoc
Entrypoint ageinweeksthresholdiso
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de semaines
Version ISO de F_AGEINWEEKSTHRESHOLD dans laquelle le premier jour de la semaine est le lundi.
Si les deux dates sont dans la même semaine, le résultat est 0.
F_AGEINWEEKSTHRESHOLDN Fonction de adhoc
Entrypoint ageinweeksthresholdnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de semaines
Le calcul se base sur des semaines commençant le dimanche.
Si les deux dates sont dans la même semaine, le résultat est 0.
F_AGEINWEEKSTHRESHOLDNISO Fonction de adhoc
Entrypoint ageinweeksthresholdnulliso
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de semaines
Version ISO de F_AGEINWEEKSTHRESHOLDN dans laquelle le premier jour de la semaine est le lundi.
Si les deux dates sont dans la même semaine, le résultat est 0.
F_AGEINDAYSTHRESHOLD
Compatible avec FreeUDFLib, FreeUDFLib AvERP
Entrypoint ageindaysthreshold
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de jours
F_AGEINDAYSTHRESHOLDN Fonction de adhoc
Entrypoint ageindaysthresholdnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de jours
F_AGEINHOURSTHRESHOLD
Fonction de adhoc
Entrypoint ageinhoursthreshold
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier d’heures
F_AGEINHOURSTHRESHOLDN Fonction de adhoc
Entrypoint ageinhoursthresholdnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier d’heures
F_AGEINMINUTESTHRESHOLD
Fonction de adhoc
Entrypoint ageinminutesthreshold
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de minutes
F_AGEINMINUTESTHRESHOLDN Fonction de adhoc
Entrypoint ageinminutesthresholdnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de minutes
F_AGEINSECONDSTHRESHOLD  Fonction de adhoc
Entrypoint ageinsecondsthreshold
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de secondes
F_AGEINSECONDSTHRESHOLDN Fonction de adhoc
Entrypoint ageinsecondsthresholdnull
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de secondes
Si le paramètre 4 vaut 1, le résultat sera au moins la valeur minimum. Si le paramètre 6 vaut 1, le résultat sera au plus la valeur maximum. Option fondée sur la compatibilité:
Si la date 2 est plus ancienne que la date 1, le résultat est négatif. En vérité il devrait être nul puisqu’il n’y a pas d’âge négatif!
Utiliser F_AGEIN…N ou F_BETWEEN si l’on ne désire pas de résultat négatif.
TestSQL
SELECT 3 AS ISCORRECT, F_AGEINYEARSTHRESHOLD('01.10.2005 15:01:03','01.12.2008 15:03:03', 5, 0, 10, 0) FROM RDB$DATABASE;
SELECT 5 AS ISCORRECT, F_AGEINYEARSTHRESHOLD('01.10.2005 15:01:03','01.12.2008 15:03:03', 5, 1, 10, 0) FROM RDB$DATABASE;
SELECT 3 AS ISCORRECT, F_AGEINYEARSTHRESHOLD('01.10.2005 15:01:03','01.12.2008 15:03:03', 5, 0, 10, 1) FROM RDB$DATABASE;
SELECT 10 AS ISCORRECT, F_AGEINYEARSTHRESHOLD('01.10.2005 15:01:03','01.12.2018 15:03:03', 5, 0, 10, 1) FROM RDB$DATABASE;
SELECT 10 AS ISCORRECT, F_AGEINYEARSTHRESHOLD('01.10.2005 15:01:03','01.12.2018 15:03:03', 5, 1, 10, 1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINYEARSTHRESHOLD(NULL, NULL, NULL, NULL, NULL, NULL) FROM RDB$DATABASE;
SELECT 2 AS ISCORRECT, F_AGEINMONTHSTHRESHOLD('01.10.2005 15:01:03','01.12.2005 15:03:03', 5, 0, 10, 0) FROM RDB$DATABASE;
SELECT 5 AS ISCORRECT, F_AGEINMONTHSTHRESHOLD('01.10.2005 15:01:03','01.12.2005 15:03:03', 5, 1, 10, 0) FROM RDB$DATABASE;
SELECT 10 AS ISCORRECT, F_AGEINMONTHSTHRESHOLD('01.01.2005 15:01:03','01.12.2005 15:03:03', 5, 1, 10, 1) FROM RDB$DATABASE;
SELECT -1 AS ISCORRECT, F_AGEINMONTHSTHRESHOLD('01.01.2006 15:01:03','01.12.2005 15:03:03', 5, 0, 10, 0) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINMONTHSTHRESHOLD(NULL, NULL, NULL, NULL, NULL, NULL) FROM RDB$DATABASE;
SELECT 2 AS ISCORRECT, F_AGEINWEEKSTHRESHOLD('01.01.2005 15:01:21','15.01.2005 15:01:21', 5, 0, 10, 0) FROM RDB$DATABASE;
SELECT 5 AS ISCORRECT, F_AGEINWEEKSTHRESHOLD('01.01.2005 15:01:21',’15.01.2005 15:01:21', 5, 1, 10, 0) FROM RDB$DATABASE;
SELECT 10 AS ISCORRECT, F_AGEINWEEKSTHRESHOLD('01.01.2005 15:01:21','15.05.2005 15:01:21', 5, 0, 10, 1) FROM RDB$DATABASE;           
SELECT -33 AS ISCORRECT, F_AGEINWEEKSTHRESHOLD('01.01.2006 15:01:21','15.05.2005 15:01:21', 5, 0, 10, 1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINWEEKSTHRESHOLD(NULL, NULL, NULL, NULL, NULL, NULL) FROM RDB$DATABASE;
SELECT 2 AS ISCORRECT, F_AGEINWEEKSTHRESHOLDISO('01.01.2005 15:01:21','15.01.2005 15:01:21', 5, 0, 10, 0) FROM RDB$DATABASE;
SELECT 10 AS ISCORRECT, F_AGEINDAYSTHRESHOLD('01.10.2005 15:01:03','11.10.2005 15:01:03', 15, 0, 20, 0) FROM RDB$DATABASE;
SELECT 15 AS ISCORRECT, F_AGEINDAYSTHRESHOLD('01.10.2005 15:01:03','11.10.2005 15:01:03', 15, 1, 20, 0) FROM RDB$DATABASE;
SELECT 20 AS ISCORRECT, F_AGEINDAYSTHRESHOLD('01.10.2005 15:01:03','01.11.2005 15:01:03', 15, 0, 20, 1) FROM RDB$DATABASE;
SELECT 20 AS ISCORRECT, F_AGEINDAYSTHRESHOLD('01.10.2005 15:01:03','01.11.2005 15:01:03', 15, 1, 20, 1) FROM RDB$DATABASE;
SELECT 15 AS ISCORRECT, F_AGEINDAYSTHRESHOLD('01.10.2005 15:01:03','01.09.2005 15:01:03', 15, 1, -20, 1) FROM RDB$DATABASE;
SELECT -20 AS ISCORRECT, F_AGEINDAYSTHRESHOLD('01.10.2005 15:01:03','15.09.2005 15:01:03', 15, 0, -20, 1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINDAYSTHRESHOLD(NULL, NULL, NULL, NULL, NULL, NULL) FROM RDB$DATABASE;
SELECT 3 AS ISCORRECT, F_AGEINHOURSTHRESHOLD('01.10.2005 15:01:03','01.10.2005 18:01:03', 5, 0, 10, 0) FROM RDB$DATABASE;
SELECT 5 AS ISCORRECT, F_AGEINHOURSTHRESHOLD('01.10.2005 15:01:03','01.10.2005 18:01:03', 5, 1, 10, 0) FROM RDB$DATABASE;
SELECT 10 AS ISCORRECT, F_AGEINHOURSTHRESHOLD('01.10.2005 15:01:03','02.10.2005 18:01:03', 5, 1, 10, 1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINHOURSTHRESHOLD(NULL, NULL, NULL, NULL, NULL, NULL) FROM RDB$DATABASE;
SELECT 14 AS ISCORRECT, F_AGEINMINUTESTHRESHOLD('01.10.2005 15:01:03','01.10.2005 15:15:03', 5, 0, 10, 0) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINMINUTESTHRESHOLD(NULL, NULL, NULL, NULL, NULL, NULL) FROM RDB$DATABASE;
SELECT 16 AS ISCORRECT, F_AGEINSECONDSTHRESHOLD('01.01.2005 15:01:03','01.01.2005 15:01:19', 5, 0, 10, 0) FROM RDB$DATABASE;
SELECT 5 AS ISCORRECT, F_AGEINSECONDSTHRESHOLD('01.01.2005 15:01:19','01.01.2005 15:01:21', 5, 1, 10, 0) FROM RDB$DATABASE;
SELECT 10 AS ISCORRECT, F_AGEINSECONDSTHRESHOLD('01.01.2005 15:01:03','01.01.2005 15:01:19', 5, 1, 10, 1) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINSECONDSTHRESHOLD(NULL, NULL, NULL, NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
Entrée  TIMESTAMP
TIMESTAMP
Date 1 avec heure optionnelle
Date 2 avec heure optionnelle
F_YEARSBETWEEN Compatible avec GrUDF
Entrypoint yearsbetween
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier d’années
F_MONTHSBETWEEN Fonction de adhoc
Entrypoint monthsbetween
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de mois
F_WEEKSBETWEEN Compatible avec GrUDF
Entrypoint weeksbetween
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de semaines
Le calcul se base sur des semaines commençant le dimanche.
Si les deux dates sont dans la même semaine, le résultat est 0.
F_WEEKSBETWEENISO Fonction de adhoc
Entrypoint weeksbetweeniso
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de semaines
Version ISO de F_WEEKSBETWEEN dans laquelle le premier jour de la semaine est le lundi.
Si les deux dates sont dans la même semaine, le résultat est 0.
F_DAYSBETWEEN Fonction de adhoc
Entrypoint daysbetween
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de jours
F_HOURSBETWEEN Compatible avec GrUDF
Entrypoint hoursbetween
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de d’heures
F_MINUTESBETWEEN Compatible avec GrUDF
Entrypoint minutesbetween
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de minutes
F_SECONDSBETWEEN Compatible avec GrUDF
Entrypoint secondsbetween
Sortie INTEGER Différence de temps entre Date 1 et Date 2, en nombre entier de secondes
Cela donne toujours un résultat positif par opposition aux fonctions F_AGEIN qui peuvent aussi fournir un résultat négatif.
TestSQL
SELECT 2 AS ISCORRECT, F_YEARSBETWEEN('01.10.2005 15:01:03','11.10.2007 15:01:03') FROM  RDB$DATABASE;
SELECT 2 AS ISCORRECT, F_YEARSBETWEEN('11.10.2007 15:01:03','01.10.2005 15:01:03') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_YEARSBETWEEN(NULL, NULL) FROM RDB$DATABASE;
SELECT 1 AS ISCORRECT, F_MONTHSBETWEEN('01.10.2005 15:01:03','11.11.2005 15:01:03') FROM RDB$DATABASE;
SELECT 1 AS ISCORRECT, F_MONTHSBETWEEN('11.11.2005 15:01:03','01.10.2005 15:01:03') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MONTHSBETWEEN(NULL, NULL) FROM RDB$DATABASE;
SELECT 2 AS ISCORRECT, F_WEEKSBETWEEN('01.10.2005 15:01:03','11.10.2005 15:01:03') FROM RDB$DATABASE;
SELECT 2 AS ISCORRECT, F_WEEKSBETWEEN('11.10.2005 15:01:03',’01.10.2005 15:01:03') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_WEEKSBETWEEN(NULL, NULL) FROM RDB$DATABASE;
SELECT 1 AS ISCORRECT, F_WEEKSBETWEENISO('01.10.2005 15:01:03','11.10.2005 15:01:03'), F_WEEKSBETWEEN('01.10.2005 15:01:03','11.10.2005 15:01:03') FROM RDB$DATABASE;
SELECT 10 AS ISCORRECT, F_DAYSBETWEEN('01.10.2005 15:01:03','11.10.2005 15:01:03') FROM RDB$DATABASE;
SELECT 10 AS ISCORRECT, F_DAYSBETWEEN('11.10.2005 15:01:03','01.10.2005 15:01:03') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DAYSBETWEEN(NULL, NULL) FROM RDB$DATABASE;
SELECT 240 AS ISCORRECT, F_HOURSBETWEEN('01.10.2005 15:01:03','11.10.2005 15:04:03') FROM RDB$DATABASE;
SELECT 240 AS ISCORRECT, F_HOURSBETWEEN('11.10.2005 15:04:03','01.10.2005 15:01:03') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_HOURSBETWEEN(NULL, NULL) FROM RDB$DATABASE;
SELECT 3 AS ISCORRECT, F_MINUTESBETWEEN('01.10.2005 15:01:03','01.10.2005 15:04:03') FROM RDB$DATABASE;
SELECT 3 AS ISCORRECT, F_MINUTESBETWEEN('01.10.2005 15:04:03', '01.10.2005 15:01:03') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MINUTESBETWEEN(NULL, NULL) FROM RDB$DATABASE;
SELECT 180 AS ISCORRECT, F_SECONDSBETWEEN('01.10.2005 15:01:03','01.10.2005 15:04:03') FROM RDB$DATABASE;
SELECT 180 AS ISCORRECT, F_SECONDSBETWEEN('01.10.2005 15:04:03','01.10.2005 15:01:03') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SECONDSBETWEEN(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DAYOFYEAR
F_EXTRACTYEARDAY
Compa. avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc (EXTRACTYEARDAY)
remplaçable par EXTRACT(YEARDAY FROM ...)
Entrypoint dayofyear
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit le nombre de jours (jour X de l’année) jusqu’à la date spécifiée
F_DAYOFYEAR: Le comptage commence par 1
F_EXTRACTYEARDAY: Le comptage commence par 0
TestSQL
SELECT 235 AS ISCORRECT, F_DAYOFYEAR('22.08.2004') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DAYOFYEAR(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DAYOFMONTH Compa. avec zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc (EXTRACTDAY)
remplaçable par EXTRACT(DAY FROM ...)
Entrypoint dayofmonth
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit le jour du mois
Le comptage commence par 1
TestSQL
SELECT 23 AS ISCORRECT, F_DAYOFMONTH('23.08.2004') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DAYOFMONTH(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DAYOFWEEK Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint dayofweek
F_EXTRACTWEEKDAY Entrée/Sortie compatibles avec rFunc (EXTRACTWEEKDAY)
Entrypoint r_weekday
F_DOW Entrée/Sortie compatibles avec rFunc (DOW)
Entrypoint r_dow
remplaçable par EXTRACT(WEEKDAY FROM ...)
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit le dernier jour du mois choisi pour l’année choisie
F_DAYOFWEEK: Dimanche = 1, Lundi = 2, Mardi = 3, Mercredi = 4, Jeudi = 5, Vendredi = 6, Samedi = 7
F_EXTRACTWEEKDAY: Dimanche = 0, Lundi = 1, Mardi = 2, Mercredi = 3, Jeudi = 4, Vendredi = 5, Samedi = 6
F_DOW: Dimanche = 7, Lundi = 1, Mardi = 2, Mercredi = 3, Jeudi = 4, Vendredi = 5, Samedi = 6
TestSQL
SELECT 1 AS ISCORRECT, F_DAYOFWEEK('22.08.2004') FROM RDB$DATABASE;
SELECT NULL  AS ISCORRECT, F_DAYOFWEEK(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DAYSOFMONTH Fonction de adhoc
Entrée/Sortie compatibles avec rFunc (DAYPERMONTH)
Entrypoint daysofmonth
Entrée INTEGER
INTEGER
Mois en chiffre 
Année
Sortie INTEGER Fournit le nombre de jour (dernier jour) du mois choisi pour l’année choisie
Le comptage commence par 1
TestSQL
SELECT 29 AS ISCORRECT, F_DAYSOFMONTH(2, 2004) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DAYSOFMONTH(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAY Compatible avec GrUDF
Entrypoint lastday
Entrée INTEGER
INTEGER
Année
Mois en chiffre
Sortie INTEGER Fournit le dernier jour du mois choisi pour l’année choisie
Presqu’identique à F_DAYSOFMONTH ; l’ordre des paramètres est inversé (d’abord Année, puis Mois)
TestSQL
SELECT 29 AS ISCORRECT, F_LASTDAY(2004, 2) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LASTDAY(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYMONTH Entrée/Sortie compatibles avec rFunc (FIRSTDAYMONTH)
Entrypoint firstdaymonth
Entrée TIMESTAMP Date avec heure optionnelle
Sortie TIMESTAMP Date avec la premier jour du mois et heure 00:00:00
TestSQL
SELECT '01.01.2007 00:00:00' AS ISCORRECT, F_FIRSTDAYMONTH('03.01.2007 15:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FIRSTDAYMONTH(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYMONTH Entrée/Sortie compatibles avec rFunc (LASTDAYMONTH)
Entrypoint lastdaymonth
Entrée TIMESTAMP Date avec heure optionnelle
Sortie TIMESTAMP Date avec le dernier jour du mois et heure 00:00:00
TestSQL
SELECT '31.01.2007 00:00:00' AS ISCORRECT, F_LASTDAYMONTH('03.01.2007 15:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LASTDAYMONTH(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DTIME Fonction de adhoc
Entrypoint dtime
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Calcule le nombre de jours depuis le 31-12-1899 jusqu’à la date choisie
Le comptage commence par 0.
TestSQL
SELECT 2 AS ISCORRECT, F_DTIME('03.01.1900') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DTIME(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ISLEAPYEAR Compatible avec FreeUDFLibC
Entrypoint isleapyear
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Résultat 1 = année bissextile, 0 = non bissextile
Algorithme Y2k-fest (2000 était une année bissextile).
TestSQL
SELECT 1 AS ISCORRECT, F_ISLEAPYEAR('22.08.2000 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ISLEAPYEAR(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_RISLEAPYEAR Entrée/Sortie compatibles avec rFunc (ISLEAPYEAR)
Entrypoint r_isleapyear
Entrée INTEGER Année
Sortie INTEGER Résultat 1 = année bissextile, 0 = non bissextile
Algorithme Y2k-fest (2000 était une année bissextile).
TestSQL
SELECT 1 AS ISCORRECT, F_RISLEAPYEAR(2000) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_RISLEAPYEAR(NULL) FROM RDB$DATABASE
nach oben • go top •
F_ZEITDIFFERENZ Compatible avec FreeUDFLib AvERP, GrUDF
Entrypoint zeitdifferenz
Entrée TIMESTAMP
TIMESTAMP
CSTRING(1)
Date 1 avec heure optionnelle
Date 2 avec heure optionnelle
Forme de sortie
        t = différence en jours
        h = différence en heures
        m = différence en minutes
        s = différence en secondes
toutes les autres valeurs renvoient toujours 0
Sortie DOUBLE Calcule la différence entre la date 1 et la date 2; le résultat est une valeur en virgule flottante tenant compte du choix du paramètre 3
TestSQL
SELECT 1.000 AS ISCORRECT, F_ZEITDIFFERENZ('02.10.2005 15:00:00', '01.10.2005 15:00:00', 't') FROM RDB$DATABASE;
SELECT 1.125 AS ISCORRECT, F_ZEITDIFFERENZ('02.10.2005 18:00:00', '01.10.2005 15:00:00', 't') FROM RDB$DATABASE;
SELECT 26.500 AS ISCORRECT, F_ZEITDIFFERENZ('02.10.2005 18:00:00', '01.10.2005 15:30:00', 'h') FROM RDB$DATABASE;
SELECT 1589.500 AS ISCORRECT, F_ZEITDIFFERENZ('02.10.2005 18:00:00', '01.10.2005 15:30:30', 'm') FROM RDB$DATABASE;
SELECT 95370.000 AS ISCORRECT, F_ZEITDIFFERENZ('02.10.2005 18:00:00', '01.10.2005 15:30:30', 's') FROM RDB$DATABASE;
SELECT 0.000 AS ISCORRECT, F_ZEITDIFFERENZ('02.10.2005 18:00:00', '01.10.2005 15:30:30', 'x') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ZEITDIFFERENZ(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_COUNTWEEKDAYS Fonction de adhoc
Entrypoint countweekdays
Entrée TIMESTAMP1
TIMESTAMP2
INTEGER
Date 1 avec heure optionnelle
Date 2 avec heure optionnelle
Numéro du jour de la semaine
Sortie INTEGER Nombre de présences du jour choisi dans l’intervalle de temps.
Lundi = 1, Mardi = 2, Mercredi = 3, Jeudi = 4, Vendredi = 5, Samedi = 6, Dimanche = 7.
Fournit le nombre de fois que le jour choisi est présent dans l’intervalle des dates 1 à 2.
TestSQL

SELECT 4 AS ISCORRECT, F_COUNTWEEKDAYS('04.02.2008', '27.02.2008', 2) FROM RDB$DATABASE;
SELECT 4 AS ISCORRECT, F_COUNTWEEKDAYS('05.02.2008', '26.02.2008', 2) FROM RDB$DATABASE;
SELECT 3 AS ISCORRECT, F_COUNTWEEKDAYS('06.02.2008', '27.02.2008', 2) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_COUNTWEEKDAYS(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
Avertissement concernant le calcul d’une semaine de l’année – Semaine calendaire (voir notamment Wikipedia:
L’année comprend au minimum 52 semaines calendaires pour lesquelles il existe différents systèmes de numérotation. Selon le système, la première semaine de l’année est
    * celle qui contient le 1er janvier (USA, fonction Excel NO.SEMAINE)
    * la première semaine comprenant au minimum quatre jours de la nouvelle année (DIN 1355 / ISO 8601)
    * la première semaine se trouvant entièrement dans l’année (méthode rare)
La norme internationale ISO 8601 (1973) fixe lundi comme premier jour de la semaine. Depuis 1976, l’Allemagne a adopté ce système (DIN 1355). En 1978 l’ONU a également décidé, au niveau international, que le premier jour de la semaine serait le lundi.
Il en découle les règles suivantes:
    * chaque lundi – et seulement le lundi – est le premier jour d’une semaine
    * la première semaine calendaire est la première qui contient au moins 4 jours de la nouvelle année
De ces règles, on déduit les caractéristiques suivantes:
    * Il n’y a pas de semaine incomplète; toutes sans exception comportent 7 jours;
    * Chaque année contient 52 ou 53 semaines calendaires;
    * Une année comporte 53 semaines lorsqu’elle commence ou qu’elle finit par un jeudi;
    * Les 29, 30 et 31 décembre peuvent déjà faire partie de la première semaine de l’année suivante;
    * Les 1, 2 et 3 janvier peuvent encore faire partie de la dernière semaine de l’année précédente.
Dans de vastes parties du monde (par exemple aux États-Unis et en Australie) la tradition juive et chrétienne a conservé le dimanche comme premier jour de la semaine. Aux USA et dans les pays utilisant ce système, les règles suivantes s’appliquent:
    * Chaque dimanche commence une nouvelle semaine calendaire;
    * Le 1er janvier – quel que soit le jour de la semaine – commence la première semaine calendaire.
Il en résulte les propriétés suivantes:
    * La première et la dernière semaine calendaire ne doivent pas être complètes, c’est-à-dire qu’elles peuvent comprendre moins de 7 jours
    * Chaque année comporte 53 semaines calendaires
    * Au cas où le 31 décembre tombe un dimanche, le 1er janvier de la même année n’est pas un dimanche et ce dimanche 31 décembre est le seul jour d’une 54e semaine calendaire (ce cas se présente rarement: la dernière fois en 2000, la prochaine fois en 2028).
Malheureusement, Gregory Deatz n’a pas bien lu les règles, de sorte que quelques fonctions ne se calculent ni suivant la «norme des USA» ni selon la norme ISO (lors des calculs, dimanche débute la semaine). Cela concerne les fonctions F_YEAROFYEAR, F_WEEKOFYEAR et F_WOY. Ces fonctions ne devraient pas être utilisées.
Les fonctions F_YEAR et F_WEEK calculent selon la «norme des USA», les fonctions F_KALENDERWOCHE et F_WOYISO selon la norme ISO 8601.
F_YEAR
 
F_YEAROFYEAR (ne pas utiliser)
Compa. avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Compatible avec FreeUDFLibC
Entrée/Sortie compatibles avec rFunc (EXTRACTYEAR)
remplaçable par EXTRACT(YEAR FROM ...)
Entrypoint year
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit l’année de la date choisie
F_YEAR calcule selon la norme des USA: la semaine commence le dimanche, la première semaine est celle comprenant le 1er janvier.
F_YEAROFYEAR calcule selon une norme ISO erronée: la semaine commence le dimanche, la première semaine commence un dimanche et se termine un mercredi.
TestSQL
SELECT 2004 AS ISCORRECT, F_YEAR(' 22.08.2004 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_YEAR(NULL) FROM RDB$DATABASE;
SELECT 2004 AS ISCORRECT, F_YEAROFYEAR(' 22.08.2004 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_YEAROFYEAR(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_QUARTER Compa. avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc (QUARTER)
Entrypoint quarter
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit le trimestre de la date choisie
TestSQL
SELECT 3 AS ISCORRECT, F_QUARTER('23.08.2004 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_QUARTER(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_MONTH Compa. avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc (EXTRACTMONTH)
remplaçable par EXTRACT(MONTH FROM ...)
Entrypoint month
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit le numéro du mois de la date choisie
TestSQL
SELECT 8 AS ISCORRECT, F_MONTH('23.08.2004 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MONTH(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_WEEK
F_WEEKOFYEAR (ne pas utiliser)
Compa. avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Compatible avec zu FreeUDFLibC
Entrypoint week
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit la semaine de la date choisie
Le comptage commence à la semaine 1 dans laquelle tombe le 1er janvier.
TestSQL
SELECT 52 AS ISCORRECT, F_WEEK('28.12.2003') FROM RDB$DATABASE;
SELECT 52 AS ISCORRECT, F_WEEK('29.12.2003') FROM RDB$DATABASE;
SELECT 1 AS ISCORRECT, F_WEEK('01.01.2005') FROM RDB$DATABASE;
SELECT 41 AS ISCORRECT, F_WEEK('02.10.2005 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_WEEK(NULL) FROM RDB$DATABASE;
SELECT 34 AS ISCORRECT, F_WEEKOFYEAR('22.08.2004 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_WEEKOFYEAR(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_WOY (ne pas utiliser) Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Entrypoint woy
Entrée TIMESTAMP Date avec heure optionnelle
Sortie CSTRING(7) Fournit l’année et la semaine de l’année concaténées
Calcule selon Gregory Deatz l’année et le numéro de semaine qui comprennent la date donnée (avec dimanche = 1 comme 1er jour de la semaine, voir ci-dessus)
TestSQL
SELECT '200434' AS ISCORRECT, F_WOY('22.08.2004 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_WOY(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_WOYISO Fonction de adhoc
Entrypoint woyiso
Entrée TIMESTAMP Date avec heure optionnelle
Sortie CSTRING(6) Année et numéro de semaine en chaînes de 4 et de 2 caractères
Calcule, selon la norme ISO, l’année et le numéro de semaine qui comprennent la date donnée. Si le 1er janvier tombe dans les semaines 52, 53 ou 54 de l’année précédente, l’année fournie est également l’année précédente.
SELECT '200453' AS ISCORRECT, F_WOYISO('01.01.2005') FROM RDB$DATABASE;
SELECT '200539' AS ISCORRECT, F_WOYISO('02.10.2005 14:38:12') FROM RDB$DATABASE;
SELECT F_WOYISO('22.08.2009 14:38:12'), F_WOY('22.08.2009 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_WOYISO(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_KALENDERWOCHE Fonction de adhoc
Entrypoint week
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Le numéro de la semaine calendaire de la date choisie selon ISO 8601
Calcul selon ISO 8601: Le comptage commence à la semaine comprenant au moins 4 jours de la nouvelle année.
TestSQL
SELECT 52 AS ISCORRECT, F_KALENDERWOCHE('28.12.2003') FROM RDB$DATABASE;
SELECT 1 AS ISCORRECT, F_KALENDERWOCHE('29.12.2003') FROM RDB$DATABASE;
SELECT 53 AS ISCORRECT, F_KALENDERWOCHE('01.01.2005') FROM RDB$DATABASE;
SELECT 39 AS ISCORRECT, F_KALENDERWOCHE('02.10.2005') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_KALENDERWOCHE(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_HOUR Compatible avec GrUDF
Entrée/Sortie compatibles avec rFunc ( EXTRACTHOUR)
remplaçable par EXTRACT(HOUR FROM ...)
Entrypoint hour
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit l’heure contenue dans le paramètre 1
Si le paramètre 1 ne contient que la date, alors l’heure sera 0.
TestSQL
SELECT 14 AS ISCORRECT, F_HOUR('23.08.2004 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_HOUR(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_MINUTE Compatible avec GrUDF
Entrée/Sortie compatibles avec rFunc ( EXTRACTMINUTE)
remplaçable par EXTRACT(MINUTE FROM ...)
Entrypoint minute
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit les minutes contenues dans la date et heure spécifiée
Si la date est seule fournie, le résultat sera 0.
TestSQL
SELECT 38 AS ISCORRECT, F_MINUTE('23.08.2004 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MINUTE(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_SECOND Compatible avec GrUDF
Entrée/Sortie compatibles avec rFunc ( EXTRACTSECOND)
remplaçable par EXTRACT(SECOND FROM ...)
Entrypoint second
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit les secondes contenues dans la date et heure spécifiée
Si la date est seule fournie, le résultat sera 0.
TestSQL
SELECT 12 AS ISCORRECT, F_SECOND('23.08.2004 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SECOND(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_MILLISECOND Entrée/Sortie compatibles avec rFunc ( EXTRACTMILLISECOND)
Entrypoint millisecond
Entrée TIMESTAMP Date avec heure optionnelle
Sortie INTEGER Fournit les millisecondes contenues dans la date et heure spécifiée
Si la date est seule fournie, le résultat sera 0.
TestSQL
SELECT 3456 AS ISCORRECT, F_MILLISECOND('23.08.2004 14:38:12 3456') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MILLISECOND(NULL) FROM RDB$DATABASE;
nach oben • go top •
 
Fonctions de dates et de temps: Formatages
F_CMONTHLONG Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint cmonthlong
Entrée TIMESTAMP Date avec heure optionnelle
Sortie CSTRING(16) Fournit le nom du mois en anglais
TestSQL
SELECT 'August' AS ISCORRECT, F_CMONTHLONG('23.08.2004') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CMONTHLONG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CMONTHLONGLANG Fonction de adhoc
Entrypoint cmonthlonglang
Entrée TIMESTAMP
CSTRING(2)
Date avec heure optionnelle
Indicatif de la langue pour le résultat
Sortie CSTRING(16) Fournit le nom du mois dans la langue choisie
Version linguistique de F_CMONTHLONG
Indicatif de la langue: uk = anglais, de = allemand, fr = français, it = italien, es = espagnol, pt = portugais, nl = néerlandais, no = norvégien Bokmål, se = suédois, dk = danois, fi = finlandais, hu = hongrois, ie = irlandais (gaélique),
ee = estonien, is = islandais, al = albanais, va = latin, v1 = latin ecclésiastique, c1 = catalan, s1 = écossais,
s2 = écossais gallique, w1 = valaisan, b1 = breton, b2 = basque, n1 = norvégien Nynorsk, za = sud-africain,
fo = féroien, lu = luxembourgeois, w2 = wallon

TestSQL
SELECT 'Août' AS ISCORRECT, F_CMONTHLONGLANG('23.08.2004', 'fr') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CMONTHLONGLANG(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CMONTHSHORT Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint cmonthshort
Entrée TIMESTAMP Date avec heure optionnelle
Sortie CSTRING(4) Fournit l’abréviation du nom du mois en anglais
TestSQL
SELECT 'Aug' AS ISCORRECT, F_CMONTHSHORT('23.08.2004') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CMONTHSHORT(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CMONTHSHORTLANG Fonction de adhoc
Entrypoint cmonthshortlang
Entrée TIMESTAMP
CSTRING(2)
Date avec heure optionnelle
Indicatif de la langue pour le résultat
Sortie CSTRING(4) Fournit l’abréviation du nom du mois dans la langue choisie
Version linguistique de F_CMONTHSHORT.
Indicatif de la langue: uk = anglais, de = allemand, fr = français, it = italien, es = espagnol, pt = portugais, nl = néerlandais, no = norvégien Bokmål, se = suédois, dk = danois, fi = finlandais, hu = hongrois, ie = irlandais (gaélique),
ee = estonien, is = islandais, al = albanais, va = latin, v1 = latin ecclésiastique, c1 = catalan, s1 = écossais,
s2 = écossais gallique, w1 = valaisan, b1 = breton, b2 = basque, n1 = norvégien Nynorsk, za = sud-africain,
fo = féroien, lu = luxembourgeois, w2 = wallon

TestSQL
SELECT 'Aoû' AS ISCORRECT, F_CMONTHSHORTLANG('23.08.2004', 'fr') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CMONTHSHORTLANG(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CDOWLONG Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint cdowlong
Entrée TIMESTAMP Date avec heure optionnelle
Sortie CSTRING(16) Fournit le nom du jour de la semaine en anglais
TestSQL
SELECT 'Monday' AS ISCORRECT, F_CDOWLONG('23.08.2004') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CDOWLONG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CDOWLONGLANG Fonction de adhoc
Entrypoint cdowlonglang
Entrée TIMESTAMP
CSTRING(2)
Date avec heure optionnelle
Indicatif de la langue pour le résultat
Sortie CSTRING(16) Fournit le nom du jour de la semaine dans la langue choisie
Version linguistique de F_CDOWLONG.
Indicatif de la langue: uk = anglais, de = allemand, fr = français, it = italien, es = espagnol, pt = portugais, nl = néerlandais, no = norvégien Bokmål, se = suédois, dk = danois, fi = finlandais, hu = hongrois, ie = irlandais (gaélique),
ee = estonien, is = islandais, al = albanais, va = latin, v1 = latin ecclésiastique, c1 = catalan, s1 = écossais,
s2 = écossais gallique, w1 = valaisan, b1 = breton, b2 = basque, n1 = norvégien Nynorsk, za = sud-africain,
fo = féroien, lu = luxembourgeois, w2 = wallon

TestSQL
SELECT 'Lundi' AS ISCORRECT, F_CDOWLONGLANG('23.08.2004', 'fr') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CDOWLONGLANG(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CDOWSHORT Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint cdowshort
Entrée TIMESTAMP Date avec heure optionnelle
Sortie CSTRING(4) Fournit l’abréviation du nom du jour de la semaine en anglais
TestSQL
SELECT 'Mon' AS ISCORRECT, F_CDOWSHORT('23.08.2004') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CDOWSHORT(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CDOWSHORTLANG Fonction de adhoc
Entrypoint cdowshortlang
Entrée TIMESTAMP
CSTRING(2)
Date avec heure optionnelle
Indicatif de la langue pour le résultat
Sortie CSTRING(16) Fournit l’abréviation du nom du jour de la semaine dans la langue choisie
Version linguistique de F_CDOWSHORT.
Indicatif de la langue: uk = anglais, de = allemand, fr = français, it = italien, es = espagnol, pt = portugais, nl = néerlandais, no = norvégien Bokmål, se = suédois, dk = danois, fi = finlandais, hu = hongrois, ie = irlandais (gaélique),
ee = estonien, is = islandais, al = albanais, va = latin, v1 = latin ecclésiastique, c1 = catalan, s1 = écossais,
s2 = écossais gallique, w1 = valaisan, b1 = breton, b2 = basque, n1 = norvégien Nynorsk, za = sud-africain,
fo = féroien, lu = luxembourgeois, w2 = wallon

TestSQL
SELECT 'Lun' AS ISCORRECT, F_CDOWSHORTLANG('23.08.2004', 'fr') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_CDOWSHORTLANG(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_GFORMATD Fonction de adhoc
Entrypoint gformatd
Entrée CSTRING(254)
TIMESTAMP
Format comme Date/Heure
Date avec heure optionnelle
Sortie CSTRING(254) Formate la date et l’heure selon le paramètre 1
Pattern pour parameter 1
        d = Jour (1 chiffre si < 10)
        dd = Jour, toujours 2 chiffres
        m = Mois (1 chiffre si < 10)
        mm = Mois, toujours 2 chiffres
        yy = Année (1 chiffre si < 10, sinon 2 chiffres)
        yyyy = Année, toujours 4 chiffres
        h = Heure (1 chiffre si < 10)
        hh = Heure, toujours 2 chiffres
        n = Minute (1 chiffre si < 10)
        nn = Minute, toujours 2 chiffres
        s = Seconde (1 chiffre si < 10)
        ss = Seconde, toujours 2 chiffres
tous les autres signes repris dans le paramètre 1 resteront à leur place dans le résultat.
TestSQL
SELECT '01-10-2005 15:09:12' AS ISCORRECT, F_GFORMATD('dd-mm-yyyy hh:nn:ss', '01.10.2005 15:09:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_GFORMATD(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DATETOSTR Entrée/Sortie compatibles avec rFunc (DATETOSTR)
Entrypoint datetostr
Entrée TIMESTAMP
CSTRING(254)
Date avec heure optionnelle
Gabarit de la date
Sortie CSTRING(254) Date formatée selon le gabarit du paramètre 2
Gabarits du paramètre 2 (comme dans la fonction C strftime):
     %% - Caractère %
     %c  - Date et heure
     %x  - Date
     %d  - Jour du mois (01-31)
     %j   - Jour de l’année (000-366)
     %w – Jour de la semaine (0-6), 0 = dimanche
     %U – Numéro de semaine selon calendrier US (00-53), dimanche est le premier jour de la semaine
     %W- Numéro de semaine selon calendrier US (00-53), lundi est le premier jour de la semaine
     %a  - Jour de la semaine abrégé (en anglais)
     %A - Jour de la semaine entier (en anglais)
     %m – Mois (01-12)
     %b  - Nom abrégé du mois (en anglais)
     %B - Nom entier du mois (en anglais)
     %y  - Année en 2 positions (00-99)
     %Y - Année en 4 positions
     %X - Heure
     %H – Heures au format 24 h (00-23)
     %I   - Heures au format 12 h (01-12)
     %M - Minutes (00-59)
     %p  - AM ou PM
     %S  - Secondes (00-59)
TestSQL
SELECT '20.02.2004' AS ISCORRECT, F_ENCODEDATE(2004, 2, 20) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ENCODEDATE(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DATETOSTRLANG Fonction de adhoc
Entrypoint datetostrlang
Entrée TIMESTAMP
CSTRING(254)
CSTRING(2)
Date avec heure optionnelle
Gabarit de la date
Indicatif de la langue pour le résultat
Sortie CSTRING(254) Date formatée selon le gabarit du paramètre 2
Version linguistique de F_DATETOSTR.
Indicatif de la langue: uk = anglais, de = allemand, fr = français, it = italien, es = espagnol, pt = portugais, nl = néerlandais, no = norvégien Bokmål, se = suédois, dk = danois, fi = finlandais, hu = hongrois, ie = irlandais (gaélique),
ee = estonien, is = islandais, al = albanais, va = latin, v1 = latin ecclésiastique, c1 = catalan, s1 = écossais,
s2 = écossais gallique, w1 = valaisan, b1 = breton, b2 = basque, n1 = norvégien Nynorsk, za = sud-africain,
fo = féroien, lu = luxembourgeois, w2 = wallon

Gabarits du paramètre 2 (comme dans la fonction C strftime): regardez F_DATETOSTR
TestSQL
SELECT 'Tuesday, 10 February 2004, 08:23:00' AS ISCORRECT, F_DATETOSTRLANG('10.02.04 08:23', '%A, %d %B %Y, %X', 'uk') FROM RDB$DATABASE;
SELECT 'Dienstag, 10 Februar 2004, 08:23:00' AS ISCORRECT, F_DATETOSTRLANG('10.02.04 08:23', '%A, %d %B %Y, %X', 'de') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DATETOSTRLANG(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ENCODEDATE Compatible avec GrUDF
Entrypoint encodedate
Entrée INTEGER
INTEGER
INTEGER
Année
Mois
Jour
Sortie DATE Construit une valeur DATE à partir de année, mois, jour
TestSQL
SELECT '20.02.2004' AS ISCORRECT, F_ENCODEDATE(2004, 2, 20) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ENCODEDATE(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_RENCODEDATE Entrée/Sortie compatibles avec rFunc (ENCODEDATE)
Entrypoint r_encodedate
Entrée INTEGER
INTEGER
INTEGER
Jour
Mois
Année
Sortie DATE Construit une valeur DATE à partir de jour, mois, année
Paramètres dans un autre sens F_ENCODEDATE
TestSQL
SELECT '20.02.2004' AS ISCORRECT, F_RENCODEDATE(20, 2, 2004) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_RENCODEDATE(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ENCODETIME Compatible avec GrUDF
Entrypoint encodetime
Entrée INTEGER
INTEGER
INTEGER
Heures
Minutes
Secondes
Sortie TIME Construit une valeur TIME à partir des heures, minutes et secondes.
TestSQL
SELECT '09:45:53' AS ISCORRECT, F_ENCODETIME(9, 45, 53) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ENCODETIME(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ENCODETIMESTAMP Compatible avec GrUDF
Entrypoint encodetimestamp
Entrée INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
Année
Mois
Jour
Heures
Minutes
Secondes
Sortie TIMESTAMP Construit une valeur TIMESTAMP à partir des année, mois, jour, heure, minute, seconde
TestSQL
SELECT '20.02.2004 09:45:53' AS ISCORRECT, F_ENCODETIMESTAMP(2004, 2, 20, 9, 45, 53) FROM RDB$DATABASE;
SELECT '20.02.2004 00:00:00' AS ISCORRECT, F_ENCODETIMESTAMP(2004, 2, 20, 0, 0, 0) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ENCODETIMESTAMP(NULL, NULL, NULL, NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_RENCODEDATETIME Entrée/Sortie compatibles avec rFunc ( ENCODEDATETIME)
Entrypoint r_encodedatetime
Entrée INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
Jour
Mois
Année
Heures
Minutes
Secondes
Sortie TIMESTAMP Construit une valeur DATE à partir de jour, mois, année, heure, minute, seconde
Paramètres dans un autre sens F_ENCODETIMESTAMP
TestSQL
SELECT '20.02.2004 09:45:53' AS ISCORRECT, F_RENCODEDATETIME(20, 2, 2004, 9, 45, 53) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_RENCODEDATETIME(NULL, NULL, NULL, NULL, NULL, NULL)) FROM RDB$DATABASE;
nach oben • go top •
F_STRIPDATE Compatible avec zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Entrée/Sortie compatibles avec rFunc (EXTRACTTIME)
Entrypoint stripdate
Entrée TIMESTAMP Date avec heure optionnelle
Sortie TIMESTAMP Fournit l’heure spécifiée associée à la date 31-12-1899 (date 0)
Pour recevoir en retour l’heure seule, utiliser CAST('01.10.2005 15:00:00' AS TIME)
TestSQL
SELECT '31.12.1899 15:00:00' AS ISCORRECT, F_STRIPDATE(' 01.10.2005 15:00:00')
FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_STRIPDATE(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_STRIPTIME Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Entrée/Sortie compatibles avec rFunc (EXTRACTDATE)
Entrypoint striptime
Entrée TIMESTAMP Date avec heure optionnelle
Sortie TIMESTAMP Fournit la date spécifiée associée à l’heure 00:00:00
Pour obtenir seulement la date, exécuter CAST('01.10.2005 15:00:00' AS DATE)
TestSQL
SELECT '01.10.2005 00:00:00' AS ISCORRECT, F_STRIPTIME(' 01.10.2005 15:00:00')
FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_STRIPTIME(NULL) FROM RDB$DATABASE;
nach oben • go top •
 
Fonctions de dates et de tempsComparaisons
F_MAXDATE Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Entrée/Sortie compatibles avec rFunc (MAXDATE)
Entrypoint maxdate
Entrée TIMESTAMP
TIMESTAMP
Date 1 avec heure optionnelle
Date 2 avec heure optionnelle
Sortie TIMESTAMP Fournit la plus tardive des deux dates spécifiées
TestSQL
SELECT '01.10.2005 15:00:00' AS ISCORRECT, F_MAXDATE('22.08.2000 14:38:12', '01.10.2005 15:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MAXDATE(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_MINDATE Compatible avec FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Entrée/Sortie compatibles avec rFunc (MINDATE)
Entrypoint mindate
Entrée TIMESTAMP
TIMESTAMP
Date 1 avec heure optionnelle
Date 2 avec heure optionnelle
Sortie TIMESTAMP Fournit la plus ancienne des deux dates spécifiées
TestSQL
SELECT '22.08.2000 14:38:12' AS ISCORRECT, F_MINDATE('22.08.2000 14:38:12', '01.10.2005 15:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_MINDATE(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_EQUALDATE Compatible avec FreeUDFLib AvERP, GrUDF
Entrypoint equaldate
Entrée TIMESTAMP
TIMESTAMP
Date 1 avec heure optionnelle
Date 2 avec heure optionnelle
Sortie INTEGER Résultat 1 = sont égales, 0 =ne sont pas égales
Compare l’égalité de deux dates-heures, mais en ne considérant que la partie date.
TestSQL
SELECT 1 AS ISCORRECT, F_EQUALDATE('20.02.2004 10:00:00', '20.02.2004 11:00:00') FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_EQUALDATE('20.02.2004 10:00:00', '21.02.2004 11:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_EQUALDATE(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_EQUALDATETIME Compatible avec FreeUDFLib AvERP, GrUDF
Entrée/Sortie compatibles avec rFunc (DTEQUAL)
Entrypoint equaldatetime
Entrée TIMESTAMP
TIMESTAMP
Date 1 avec heure optionnelle
Date 2 avec heure optionnelle
Sortie INTEGER Résultat 1 = sont égales, 0 =ne sont pas égales
Compare l’égalité de deux dates-heures en tenant compte à la fois de la date et de l’heure.
TestSQL
SELECT 1 AS ISCORRECT, F_EQUALDATETIME('20.02.2004 10:00:00', '20.02.2004 10:00:00') FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_EQUALDATETIME('20.02.2004 10:00:00', '20.02.2004 11:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_EQUALDATETIME(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
 
Fonctions de dates et de tempsConversions
F_STRTOTIME Compatible avec FreeUDFLibC
Entrypoint strtotime
Entrée CSTRING(11) heure "anglophile" sous forme de chaîne (p.e. 05:04:01 AM) 
Sortie TIME Convertit l’heure "anglophile" en notation 24 heures
Le format d’entrée peut indiquer les éléments en un ou deux chiffres et la mention «AM» ou «PM» peut suivre avec ou sans espace, mais cette mention doit être en majuscules.
TestSQL   
SELECT '05:04:01' AS ISCORRECT, F_STRTOTIME('05:04:01 AM') FROM RDB$DATABASE;
SELECT '17:04:01' AS ISCORRECT, F_STRTOTIME('5:4:1PM') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_STRTOTIME(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DATETODOUBLE Entrée/Sortie compatibles avec rFunc (DATETODOUBLE)
Entrypoint datetodouble
Entrée TIMESTAMP Date avec heure optionnelle
Sortie DOUBLE Dates et heures en virgule flottante (date avant la virgule, heure après la virgule)
TestSQL
SELECT 54205.59375 AS ISCORRECT, F_DATETODOUBLE('15.04.2007 14:15:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DATETODOUBLE(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_TIMETODOUBLE Entrée/Sortie compatibles avec rFunc (TIMETODOUBLE)
Entrypoint timetodouble
Entrée TIMESTAMP Date avec heure optionnelle
Sortie DOUBLE Heures en virgule flottante (0 avant la virgule, heure après la virgule) 
TestSQL
SELECT 0.59375 AS ISCORRECT, F_TIMETODOUBLE('15.04.2007 14:15:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_TIMETODOUBLE(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DOUBLETODATE Entrée/Sortie compatibles avec rFunc (DOUBLETODATE)
Entrypoint doubletodate
Entrée DOUBLE Dates et heures en virgule flottante (date avant la virgule, heure après la virgule)
Sortie TIMESTAMP Date avec heure
rFunc utilise le calendrier julien modifié (0 = 17.11.1858 00:00:00) de sorte que la date 0 n’est pas 31.12.1899, mais bien 17.11.1858.
TestSQL
SELECT '15.04.2007 14:15:00' AS ISCORRECT, F_DOUBLETODATE(54205.59375) FROM RDB$DATABASE;
SELECT NULL' AS ISCORRECT, F_DOUBLETODATE(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DOUBLETOTIME Entrée/Sortie compatibles avec rFunc (DOUBLETOTIME)
Entrypoint doubletotime
Entrée DOUBLE Heures en virgule flottante (0 avant la virgule, heure après la virgule) 
Sortie TIMESTAMP Date avec heure
Prend seulement en considération la valeur de l’entrée après la virgule.
rFunc utilise le calendrier julien modifié (0 = 17.11.1858 00:00:00) de sorte que la date 0 n’est pas 31.12.1899, mais bien 17.11.1858.
TestSQL
SELECT '31.12.1899 14:15:00' AS ISCORRECT, F_DOUBLETOTIME(0.59375) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DOUBLETOTIME(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_PERIOD2SECONDS Fonction de adhoc
Entrypoint period2seconds
Entrée CSTRING(254) Durée de la période au format d:h:m:s  
Sortie INTEGER Nombre de secondes de la période
Les durées peuvent être données sous deux formats: une ou deux positions (dd:hh:mm:ss ou d:h:m:s).
Les durées négatives s’indiquent par un ‹-› en tête de la première section.
Les durées peuvent s’exprimer au format Jour:Heure:Minute:Seconde (4 sections) et Heure:Minute:Seconde (3 sections).
S’il y a moins de 3 sections ou s’il y a d’autres caractères en tête, le résultat sera respectivement <null> ou une chaîne vide.
Des entrées comme par exemple '0:26:0:0' au lieu de '1:2:0:0' pour 26 heures sont acceptées.
TestSQL
SELECT 4205 AS ISCORRECT, F_PERIOD2SECONDS('0:1:10:5') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_PERIOD2SECONDS(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_SECONDS2PERIOD Fonction de adhoc
Entrypoint seconds2period
Entrée INTEGER Nombre de secondes d’une période de temps
Sortie CSTRING(254) Durée de la période au format d:h:m:s
Le résultat en sortie est toujours au format Jour:Heure:Minute:Seconde (4 sections de 2 positions) dd:hh:mm:ss.
Les durées négatives s’indiquent par un ‹-› en tête de la première section.
TestSQL
SELECT '00:01:10:05' AS ISCORRECT, F_SECONDS2PERIOD(4205) FROM RDB$DATABASE;
SELECT '-00:01:10:05' AS ISCORRECT, F_SECONDS2PERIOD(-4205) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SECONDS2PERIOD(NULL) FROM RDB$DATABASE;
nach oben • go top •
 
Fonctions de dates et de temps: Fête
F_WEIBERFASSTNACHT Fonction de adhoc
Entrypoint weiberfasstnacht
Entrée INTEGER Année pour laquelle on recherche la date de Carnaval des femmes
Sortie DATE Fournit la date du Carnaval des femmes de l’année spécifiée
TestSQL
SELECT '15.02.2007' AS ISCORRECT, F_WEIBERFASTNACHT(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_WEIBERFASTNACHT(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ROSENMONTAG Fonction de adhoc
Entrypoint rosenmontag
Entrée INTEGER Année pour laquelle on recherche la date de la veille du Mardi Gras
Sortie DATE Fournit la date de la veille du Mardi Gras de l’année spécifiée
TestSQL
SELECT '19.02.2007' AS ISCORRECT, F_ROSENMONTAG(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ROSENMONTA(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_KARNEVALSDIENSTAG Fonction de adhoc
Entrypoint karnevalsdienstag
Entrée INTEGER Année pour laquelle on recherche la date de Mardi Gras
Sortie DATE Fournit la date du Mardi Gras de l’année spécifiée
TestSQL
SELECT '20.02.2007' AS ISCORRECT, F_KARNEVALSDIENSTAG(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_KARNEVALSDIENSTAG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ASCHERMITTWOCH Fonction de adhoc
Entrypoint aschermittwoch
Entrée INTEGER Année pour laquelle on recherche la date de Mercredi des Cendres
Sortie DATE Fournit la date du Mercredi des Cendres de l’année spécifiée
TestSQL
SELECT '21.02.2007' AS ISCORRECT, F_ASCHERMITTWOCH(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ASCHERMITTWOCH(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_PALMSONNTAG Fonction de adhoc
Entrypoint palmsonntag
Entrée INTEGER Année pour laquelle on recherche la date de Dimanche des Rameaux
Sortie DATE Fournit la date du Dimanche des Rameaux de l’année spécifiée
TestSQL
SELECT '01.04.2007' AS ISCORRECT, F_PALMSONNTAG(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_PALMSONNTAG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_GRUENDONNERSTAG Fonction de adhoc
Entrypoint gruendonnerstag
Entrée INTEGER Année pour laquelle on recherche la date de jeudi saint
Sortie DATE Fournit la date du jeudi saint de l’année spécifiée
TestSQL
SELECT '05.04.2007' AS ISCORRECT, F_GRUENDONNERSTAG(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_GRUENDONNERSTAG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_KARFREITAG Fonction de adhoc
Entrypoint karfreitag
Entrée INTEGER Année pour laquelle on recherche la date de Vendredi Saint
Sortie DATE Fournit la date du Vendredi Saint de l’année spécifiée
TestSQL
SELECT '06.04.2007' AS ISCORRECT, F_KARFREITAG(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_KARFREITAG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_OSTERSAMSTAG Fonction de adhoc
Entrypoint ostersamstag
Entrée INTEGER Année pour laquelle on recherche la date de Samedi de Paques
Sortie DATE Fournit la date du Samedi de Paques de l’année spécifiée
TestSQL
SELECT '07.04.2007' AS ISCORRECT, F_OSTERSAMSTAG(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_OSTERSAMSTAG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_OSTERDATUM Compatible avec FreeUDFLib AvERP, GrUDF
Entrypoint osterdatum
Entrée INTEGER Année pour laquelle on recherche la date de Pâques
Sortie DATE Fournit la date du dimanche de Pâques de l’année spécifiée
TestSQL
SELECT '27.03.2005' AS ISCORRECT, F_OSTERDATUM(2005) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_OSTERDATUM(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_OSTERMONTAG Fonction de adhoc
Entrypoint ostermontag
Entrée INTEGER Année pour laquelle on recherche la date de Lundi de Paques
Sortie DATE Fournit la date du Lundi de Paques de l’année spécifiée
TestSQL
SELECT '09.04.2007' AS ISCORRECT, F_OSTERMONTAG(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_OSTERMONTAG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_HIMMELFAHRT Fonction de adhoc
Entrypoint himmelfahrt
Entrée INTEGER Année pour laquelle on recherche la date de Ascension
Sortie DATE Fournit la date du Ascension de l’année spécifiée
TestSQL
SELECT '17.05.2007' AS ISCORRECT, F_HIMMELFAHRT(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_HIMMELFAHRT(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_PFINGSTSONNTAG Fonction de adhoc
Entrypoint pfingstsonntag
Entrée INTEGER Année pour laquelle on recherche la date de Dimanche de Pentecote
Sortie DATE Fournit la date du Dimanche de Pentecote de l’année spécifiée
TestSQL
SELECT '27.05.2007' AS ISCORRECT, F_PFINGSTSONNTAG(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_PFINGSTSONNTAG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_PFINGSTMONTAG Fonction de adhoc
Entrypoint pfingstmontag
Entrée INTEGER Année pour laquelle on recherche la date de Lundi de Pentecote
Sortie DATE Fournit la date du Lundi de Pentecote de l’année spécifiée
TestSQL
SELECT '28.05.2007' AS ISCORRECT, F_PFINGSTMONTAG(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_PFINGSTMONTAG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FRONLEICHNAM Fonction de adhoc
Entrypoint fronleichnam
Entrée INTEGER Année pour laquelle on recherche la date de Fete-Dieu
Sortie DATE Fournit la date du Fete-Dieu de l’année spécifiée
TestSQL
SELECT '07.06.2007' AS ISCORRECT, F_FRONLEICHNAM(2007) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FRONLEICHNAM(NULL) FROM RDB$DATABASE;
vorige Seite • previous page • passée sitenach oben • go top • vers le hautnächste Seite • next page • prochain site