FreeAdhocUDF für InterBase und FireBird in deutschin englishen français
homeprevious pageÜbersicht • overview • aperçunext pagelast page Mailing-Liste • mailinglist • liste de diffusionwas ich vermisse • what I missed •eMail Kommentar • eMail commentprint
 

Funktionen enthalten in der FreeAdhocUDF.dll/.so/.dylib :
Datums-/Zeit Funktionen 139 Funktionen und 27 Varianten

Vorbemerkung

Rechnen 11 Funktionen

Ermitteln 78 Funktionen und 23 Varianten

Formatieren 16 Funktionen und 4 Varianten

Vergleichen 4 Funktionen

Umwandeln 7 Funktionen

Bewegliche Feiertage 14 Funktionen

läuft nicht in InterBase

ab FireBird 2 statt 0, '' (Leerstring) oder '17.11.1858' <null>

ab InterBase Version 6.0 kann diese Funktion ersetzt werden

ab FireBird Version 1.0 kann diese Funktion ersetzt werden

ab FireBird Version 2.1 kann diese Funktion ersetzt werden


Output RETURN Mechanismus wenn nicht anderes angegeben: FREE_IT
Die TestSQLs mit NULL funktionieren natürlich nur ab FireBird 2
 
Datum-/Zeit Funktionen: Vorbemerkung
Für die Zeitberechnung werden verschiedene Datums verwendet. Die wichtigsten sind
- das Julianische Datum (JD)
- das modifizierte Julianische Datum (MJD)
- das Dubliner Julianische Datum (DJD)
- das ANSI Datum
- das UNIX Datum nach dem POSIX-Standard

Das Julianische Datum (JD) gibt die Zeit in Tagen an, die seit dem 1. Januar −4712 12:00 Uhr vergangen ist. Dem 1. Januar 2000 12:00 Uhr entspricht zum Beispiel das Julianische Datum 2.451.545,0.
Das Julianische Datum darf nicht verwechselt werden mit einer Datumsangabe im Julianischen Kalender.
Als fortlaufende Tageszählung ist das Julianische Datum frei von Unregelmäßigkeiten wie Schalttagen, unterschiedlich langen Monaten usw., wie sie in den meisten Kalendern auftreten. Es wird daher vor allem in der Astronomie zur Beschreibung zeitabhängiger Größen verwendet, da mit ihm sehr leicht Zeitdifferenzen berechnet werden können.

Im Internationalen Geophysikalischen Jahr (1957/58) wurde ein modifiziertes Julianisches Datum (mJD oder MJD) eingeführt mit Nullpunkt am 17. November 1858 0:00 Uhr UT(Weltzeit): MJD = JD – 2.400.000,5. Es wurde zuerst verwendet, um die Flugbahn des Sputnik auf einer IBM 704 (36-Bit-Maschine) aufzuzeichnen. Die Firma Digital Equipment Corporation (DEC) verwendete das MJD in ihrem Betriebssystem VMS und  ihrer Datenbank Rdb/VMS, an der ja bekanntlich Jim Starkey mitarbeitetete bevor er DEC verließ und ein eigenes RDBMS (relational database management system) entwarf (Groton DataBase), aus dem dann InterBase entstand.
Das MJD wird hauptsächlich in der Geodäsie, Geophysik und Raumfahrt verwendet, konnte sich in der Astronomie jedoch nicht durchsetzen.

Das Dubliner Julianisches Datum (DJD): Eine weitere Version eines Julianischen Datums beginnt die Zählung der Tage mit dem Beginn des Jahres 1900 (z. B. in Microsoft Excel, Lotus-123, Delphi) oder dem des Jahres 1904 (Microsoft Excel für Mac OS). Da die Zählung am 1. Januar nicht mit der Null, sondern mit dem Wert „1“ beginnt, ist der korrekte Nullpunkt der Zählung der 31. Dezember 1899 0:00 Uhr. Für zusätzliche Verwirrung sorgt, dass einige Programme das Jahr 1900 fälschlicherweise als Schaltjahr ansehen und daher für Tage nach dem 28. Februar 1900 inkonsistente Daten liefern (Nullpunkt ist dann der 30. Dezember 1899, 0:00 Uhr).

Das ANSI-Datum legt den 1. Januar 1601 als Tag „1“ fest. Es dient als Ursprung der Datumszählung in der Programmiersprache COBOL.

Das UNIX-Datum ist eine einfache Zeitdefinition, die 1969 für das Betriebssystem Unix entwickelt und als POSIX-Standard festgelegt wurde. In den ersten Tagen von Unix wurde die Definition mehrfach geändert. Seit mehreren Jahrzehnten ist sie jedoch stabil. Die Unixzeit zählt die vergangenen Sekunden seit dem 1. Januar 1970 00:00 h UTC (Koordinierte Weltzeit), wobei Schaltsekunden nicht mitgezählt werden. Dieses Startdatum wird auch als The EPOCH bezeichnet.

(siehe http://de.wikipedia.org/wiki/Julianisches_Datum und http://de.wikipedia.org/wiki/Unixzeit)

InterBase und FireBird verwenden das modifizierte Julianische Datum was den 17.11.1858 als Tag 0 definiert.
nach oben • go top •
 
Datum-/Zeit Funktionen: Rechnen
ab ersetzbar durch die eingebaute Funktion DATEADD
F_ADDYEAR kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint addyear UTF-8 kompatibel
Input TIMESTAMP
INTEGER
Datum optional Uhrzeit
Anzahl Jahre zum Aufaddieren
Output TIMESTAMP Addiert zum Datum die Anzahl Jahre.
Bei negativem Parameter 2 werden die Jahre subtrahiert.
Ist das Ergebnisjahr kein Schaltjahr, wird für den 29. Februar der 1. März ausgegeben.
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 •
ab
ersetzbar durch die eingebaute Funktion DATEADD
F_ADDMONTH kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint addmonth UTF-8 kompatibel
Input TIMESTAMP
INTEGER
Datum optional Uhrzeit
Anzahl Monate zum Aufaddieren
Output TIMESTAMP
Addiert zum Datum die Anzahl Monate. Bei negativem Parameter 2 werden die Monate subtrahiert.
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 •
ab
ersetzbar durch die eingebaute Funktion DATEADD
F_ADDWEEK Funktion von adhoc
Entrypoint addweek UTF-8 kompatibel
Input TIMESTAMP
INTEGER
Datum optional Uhrzeit
Anzahl Wochen zum Aufaddieren
Output TIMESTAMP
Addiert zum Datum die Anzahl Wochen. Bei negativem Parameter 2 werden die Wochen subtrahiert.
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 •
ab
ersetzbar durch die eingebaute Funktion DATEADD
F_ADDDAY Funktion von adhoc
Entrypoint addday UTF-8 kompatibel
Input TIMESTAMP
INTEGER
Datum optional Uhrzeit
Anzahl Tage zum Aufaddieren
Output TIMESTAMP
Addiert zum Datum die Anzahl Tage. Bei negativem Parameter 2 werden die Tage subtrahiert.
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 •
ab
ersetzbar durch die eingebaute Funktion DATEADD
F_ADDHOUR Funktion von adhoc
Entrypoint addhour UTF-8 kompatibel
Input TIMESTAMP
INTEGER
Datum optional Uhrzeit
Anzahl Stunden zum Aufaddieren
Output TIMESTAMP
Addiert zum Datum Uhrzeit die Anzahl Stunden. Bei negativem Parameter 2 werden die Stunden subtrahiert.
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 •
ab
ersetzbar durch die eingebaute Funktion DATEADD
F_ADDMINUTE Funktion von adhoc
Entrypoint addminute UTF-8 kompatibel
Input TIMESTAMP
INTEGER
Datum optional Uhrzeit
Anzahl Minuten zum Aufaddieren
Output TIMESTAMP
Addiert zum Datum Uhrzeit die Anzahl Minuten. Bei negativem Parameter 2 werden die Minuten subtrahiert.
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 •
ab
ersetzbar durch die eingebaute Funktion DATEADD
F_ADDSECOND Funktion von adhoc
Entrypoint addsecond UTF-8 kompatibel
Input TIMESTAMP
INTEGER
Datum optional Uhrzeit
Anzahl Sekunden zum Aufaddieren
Output TIMESTAMP
Addiert zum Datum Uhrzeit die Anzahl Sekunden. Bei negativem Parameter 2 werden die Sekunden subtrahiert.
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 Input/Output-kompatibel zu rFunc (INCDATE)
Entrypoint incdate UTF-8 kompatibel
Input TIMESTAMP
INTEGER
INTEGER
INTEGER
Datum optional Uhrzeit
Anzahl Tage zum Aufaddieren
Anzahl Monate zum Aufaddieren
Anzahl Jahre zum Aufaddieren
Output TIMESTAMP
Addiert zum Datum Uhrzeit die Anzahl Tage, Monate und Jahre.
Bei negativen Parametern wird subtrahiert.
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 Input/Output-kompatibel zu rFunc (INCDATETIME)
Entrypoint incdatetime UTF-8 kompatibel
Input TIMESTAMP
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
Datum optional Uhrzeit
Anzahl Tage zum Aufaddieren
Anzahl Monate zum Aufaddieren
Anzahl Jahre zum Aufaddieren
Anzahl Stunden zum Aufaddieren
Anzahl Minuten zum Aufaddieren
Anzahl Sekunden zum Aufaddieren
Output TIMESTAMP
Addiert zum Datum Uhrzeit die Anzahl Tage, Monate, Jahre, Stunden, Minuten und Sekunden.
Bei negativen Parametern wird subtrahiert.
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_INCDATETIME(NULL, NULL, NULL, NULL, NULL, NULL, NULL) FROM RDB$DATABASE;  
nach oben • go top •
F_ADDPERIOD Funktion von adhoc
Entrypoint addperiod UTF-8 kompatibel
Input CSTRING(254)
CSTRING(254)
Zeit-Dauer 1 im Format [d:]h:m:s
Zeit-Dauer 2 im Format [d:]h:m:s
Output CSTRING(254) Zeitdauer 1 plus Zeitdauer 2
Die Zeitdauern können mit 2- oder 1-stelligen Bereichen (dd:hh:mm:ss oder d:h:m:s) eingegeben werden.
Negative Zeitdauern werden mit einem "-" vor dem 1. Bereich eingegeben.
Es sind Zeitdauern im Format Tag:Stunde:Minute:Sekunde (4 Bereiche) und Stunde:Minute:Sekunde (3 Bereiche) erlaubt.
Enthält der Input weniger als 3 Bereiche oder kommen andere Zeichen vor, ist das Ergnis <null> bzw. Leerstring.
Erlaubt als Input ist auch z.B. '0:26:0:0' statt '1:2:0:0' für 26 Stunden.  
Das Ergebnis ist immer im Format Tag:Stunde:Minute:Sekunde (4 mal 2-stellige Bereiche) 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 Funktion von adhoc
Entrypoint subperiod UTF-8 kompatibel
Input CSTRING(254)
CSTRING(254)
Zeit-Dauer 1 im Format [d:]h:m:s
Zeit-Dauer 2 im Format [d:]h:m:s
Output CSTRING(254) Zeitdauer1 abzüglich Zeitdauer 2
Die Zeitdauern können mit 2- oder 1-stelligen Bereichen (dd:hh:mm:ss oder d:h:m:s) eingegeben werden.
Negative Zeitdauern werden mit einem "-" vor dem 1. Bereich eingegeben.
Es sind Zeitdauern im Format Tag:Stunde:Minute:Sekunde (4 Bereiche) und Stunde:Minute:Sekunde (3 Bereiche) erlaubt.
Enthält der Input weniger als 3 Bereiche oder kommen andere Zeichen vor, ist das Ergnis <null> bzw. Leerstring.
Erlaubt als Input ist auch z.B. '0:26:0:0' statt '1:2:0:0' für 26 Stunden.  
Das Ergebnis ist immer im Format Tag:Stunde:Minute:Sekunde (4 mal 2-stellige Bereiche) dd:hh:mm:ss.
Ist die 2. Zeit-Dauer größer als die 1. ist das Ergebnis negativ ("-"vor dem 1. Bereich).
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 •
 
Datum-/Zeit Funktionen: Ermitteln
Zum Berechnen des Zeitraums zwischen zwei Datum gibt es 3 grundsätzliche Möglichkeiten (gilt für IB und FB alle Versionen):
  • ist als Ergebnis eine negative Zahl erwünscht, wenn das erste eingegebene Datum größer als das 2. Datum ist
    • verwenden Sie F_AGEIN... bzw. den Entrypoint agein...
  • ist als Ergebnis <null> erwünscht, wenn das erste eingegebene Datum größer als das 2. Datum ist
    • verwenden Sie F_AGEIN...N bzw. den Entrypoint agein...null 
  • ist als Ergebnis nur eine positive Zahl erwünscht, egal in welcher Reihenfolge die beiden Datum eingegeben wurden
    • verwenden Sie F_...BETWEEN bzw. den Entrypoint ...between
Input für alle
folgenden immer
TIMESTAMP
TIMESTAMP
(kleineres) Datum optional Uhrzeit 1
(größeres) Datum optional Uhrzeit 2
ab

ersetzbar durch die eingebaute Funktion DATEDIFF
F_AGEINYEARS
Funktion von adhoc
Entrypoint ageinyears UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Jahren von Datum 1 zu Datum 2
ab
ersetzbar durch die eingebaute Funktion DATEDIFF
F_AGEINYEARSN  Funktion von adhoc
Entrypoint ageinyearsnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Jahren von Datum 1 zu Datum 2
ab

ersetzbar durch die eingebaute Funktion DATEDIFF
F_AGEINMONTHS
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint ageinmonths UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Monaten von Datum 1 zu Datum 2
ab
ersetzbar durch die eingebaute Funktion DATEDIFF
F_AGEINMONTHSN  Funktion von adhoc
Entrypoint ageinmonthsnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Monaten von Datum 1 zu Datum 2
ab

ersetzbar durch die eingebaute Funktion DATEDIFF
F_AGEINWEEKS
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Entrypoint ageinweeks UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Wochen von Datum 1 zu Datum 2
Rechnet mit Sonntag als 1. Tag der Woche.
Sind beide Datum in der gleichen Woche, ist das Ergebnis 0
F_AGEINWEEKSISO
Funktion von adhoc
Entrypoint ageinweeksiso UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Wochen von Datum 1 zu Datum 2
ISO-Version von F_AGEINWEEKS mit Montag als 1. Tag der Woche
Sind beide Datum in der gleichen Woche, ist das Ergebnis 0
ab
ersetzbar durch die eingebaute Funktion DATEDIFF
F_AGEINWEEKSN  Funktion von adhoc
Entrypoint ageinweeksnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Wochen von Datum 1 zu Datum 2
Rechnet mit Sonntag als 1. Tag der Woche.
Sind beide Datum in der gleichen Woche, ist das Ergebnis 0
F_AGEINWEEKSNISO Funktion von adhoc
Entrypoint ageinweeksnulliso UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Wochen von Datum 1 zu Datum 2
ISO-Version von F_AGEINWEEKSN mit Montag als 1. Tag der Woche
Sind beide Datum in der gleichen Woche, ist das Ergebnis 0
ab

ersetzbar durch die eingebaute Funktion DATEDIFF
F_AGEINDAYS

kompatibel zu FreeUDFLib, FreeUDFLib AvERP
Input/Output-kompatibel zu rFunc (DAYSBETWEEN)
Entrypoint ageindays UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Tagen von Datum 1 zu Datum 2
F_AGEINDAYSN  Funktion von adhoc
Entrypoint ageindaysnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Tagen von Datum 1 zu Datum 2
F_AGEINWORKINGDAYS  Funktion von adhoc
Entrypoint ageinworkingdays UTF-8 kompatibel
Input TIMESTAMP
TIMESTAMP
INTEGER
(kleineres) Datum optional Uhrzeit 1
(größeres) Datum optional Uhrzeit 2
auszulassende/r Wochentag/e
Output INTEGER Zeitdifferenz in (ganzzahligen) Tagen von Datum 1 zu Datum 2 abzüglich
des/der Wochentag/e aus Parameter 3
Wochentag: Montag = 1, Dienstag = 2, Mittwoch = 3, Donnerstag = 4, Freitag = 5, Samstag = 6, Sonntag = 7
Ist das 1. Datum größer als das 2. ist das Ergebnis negativ.
Die Reihenfolge bei mehreren Wochentagen für die Kennziffern für den Wochentag ist beliebig.
Es werden nur gültige Kennzahlen berücksichtigt.
Test SQL
SELECT 4 AS ISCORRECT, F_AGEINWORKINGDAYS('12.12.2008', '17.12.2008', 7) FROM RDB$DATABASE;
SELECT 3 AS ISCORRECT, F_AGEINWORKINGDAYS('12.12.2008', '17.12.2008', 67) FROM RDB$DATABASE;
SELECT -3 AS ISCORRECT, F_AGEINWORKINGDAYS('17.12.2008', '12.12.2008', 67) FROM RDB$DATABASE;
SELECT 3 AS ISCORRECT, F_AGEINWORKINGDAYS('12.12.2008', '17.12.2008', 467) FROM RDB$DATABASE;
SELECT 5 AS ISCORRECT, F_AGEINWORKINGDAYS('12.12.2008', '17.12.2008', 9) FROM RDB$DATABASE;
SELECT 5 AS ISCORRECT, F_AGEINWORKINGDAYS('12.12.2008', '17.12.2008', 890) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_AGEINWORKINGDAYS('09.01.2009', '09.01.2009', 67) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINWORKINGDAYS(NULL, NULL, NULL) FROM RDB$DATABASE;
ab

ersetzbar durch die eingebaute Funktion DATEDIFF
F_AGEINHOURS
Funktion von adhoc
Entrypoint ageinhours UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Stunden von Datum 1 zu Datum 2
F_AGEINHOURSN Funktion von adhoc
Entrypoint ageinhourslnul UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Stunden von Datum 1 zu Datum 2
ab

ersetzbar durch die eingebaute Funktion DATEDIFF
F_AGEINMINUTES
Funktion von adhoc
Entrypoint ageinminutes UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Minuten von Datum 1 zu Datum 2
F_AGEINMINUTESN Funktion von adhoc
Entrypoint ageinminutesnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Minuten von Datum 1 zu Datum 2
ab

ersetzbar durch die eingebaute Funktion DATEDIFF
F_AGEINSECONDS
Funktion von adhoc
Entrypoint ageinseconds UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Sekunden von Datum 1zu Datum 2
F_AGEINSECONDSN Funktion von adhoc
Entrypoint ageinsecondsnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Sekunden von Datum 1zu Datum 2
Aus Kompatibilitätsgründen:
Wenn Datum 2 < als Datum 1 ist das Ergebnis negativ. Eigentlich müßte es 0 sein, denn es gibt kein negatives Alter!
Verwenden Sie F_AGEIN...N oder F_...BETWEEN wenn Sie kein negatives Alter wünschen.
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 •
Input für alle
folgenden immer
TIMESTAMP
TIMESTAMP
INTEGER
INTEGER
INTEGER
INTEGER
(kleineres) Datum optional Uhrzeit 1
(größeres) Datum optional Uhrzeit 2
Minimalwert
Minimalwert wird verwendet (0 = nein, 1 = ja)
Maximalwert
Maximalwert wird verwendet (0 = nein, 1 = ja)
F_AGEINYEARSTHRESHOLD
Funktion von adhoc
Entrypoint ageinyearsthreshold UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Jahren von Datum 1 zu Datum 2
F_AGEINYEARSTHRESHOLDN Funktion von adhoc
Entrypoint ageinyearsthresholdnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Jahren von Datum 1 zu Datum 2
F_AGEINMONTHSTHRESHOLD
kompatibel zu FreeUDFLib, FreeUDFLib AvERP
Entrypoint ageinmonththreshold UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Monaten von Datum 1 zu Datum 2
F_AGEINMONTHSTHRESHOLDN Funktion von adhoc
Entrypoint ageinmonththresholdnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Monaten von Datum 1 zu Datum 2
F_AGEINWEEKSTHRESHOLD
kompatibel zu FreeUDFLib, FreeUDFLib AvERP
Entrypoint ageinweeksthreshold UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Wochen von Datum 1 zu Datum 2
Rechnet mit Sonntag als 1. Tag der Woche.
Sind beide Datum in der gleichen Woche, ist das Ergebnis 0
F_AGEINWEEKSTHRESHOLDISO
Funktion von adhoc
Entrypoint ageinweeksthresholdiso UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Wochen von Datum 1 zu Datum 2
ISO-Version von F_AGEINWEEKSTHRESHOLD mit Montag als 1. Tag der Woche
Sind beide Datum in der gleichen Woche, ist das Ergebnis 0
F_AGEINWEEKSTHRESHOLDN Funktion von adhoc
Entrypoint ageinweeksthresholdnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Wochen von Datum 1 zu Datum 2
Rechnet mit Sonntag als 1. Tag der Woche.
Sind beide Datum in der gleichen Woche, ist das Ergebnis 0
F_AGEINWEEKSTHRESHOLDNISO Funktion von adhoc
Entrypoint ageinweeksthresholdnulliso UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Wochen von Datum 1 zu Datum 2
ISO-Version von F_AGEINWEEKSTHRESHOLDN mit Montag als 1. Tag der Woche
Sind beide Datum in der gleichen Woche, ist das Ergebnis 0
F_AGEINDAYSTHRESHOLD
kompatibel zu FreeUDFLib, FreeUDFLib AvERP
Entrypoint ageindaysthreshold UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Tagen von Datum 1 zu Datum 2
F_AGEINDAYSTHRESHOLDN Funktion von adhoc
Entrypoint ageindaysthresholdnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Tagen von Datum 1 zu Datum 2
F_AGEINWORKINGDAYSTHR Funktion von adhoc
Entrypoint ageinworkingdaysthr UTF-8 kompatibel
Input TIMESTAMP
TIMESTAMP
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
(kleineres) Datum optional Uhrzeit 1
(größeres) Datum optional Uhrzeit 2
Minimalwert
Minimalwert wird verwendet (0 = nein, 1 = ja)
Maximalwert
Maximalwert wird verwendet (0 = nein, 1 = ja)
auszulassende/r Wochentag/e
Output INTEGER Zeitdifferenz in (ganzzahligen) Tagen von Datum 1 zu Datum 2 abzüglich
des/der Wochentag/e aus Parameter 7
Wochentag: Montag = 1, Dienstag = 2, Mittwoch = 3, Donnerstag = 4, Freitag = 5, Samstag = 6, Sonntag = 7
Ist das 1. Datum größer als das 2. ist das Ergebnis negativ.
Die Reihenfolge bei mehreren Wochentagen für die Kennziffern für den Wochentag ist beliebig.
Es werden nur gültige Kennzahlen berücksichtigt.
Test SQL
SELECT 4 AS ISCORRECT, F_AGEINWORKINGDAYSTHRESHOLD('12.12.2008', '17.12.2008', 5, 0, 0, 0, 7) FROM RDB$DATABASE;
SELECT 5 AS ISCORRECT, F_AGEINWORKINGDAYSTHRESHOLD('12.12.2008', '17.12.2008', 5, 1, 0, 0, 7) FROM RDB$DATABASE;
SELECT 4 AS ISCORRECT, F_AGEINWORKINGDAYSTHRESHOLD('12.12.2008', '17.12.2008', 0, 0, 3, 0, 7) FROM RDB$DATABASE;
SELECT 3 AS ISCORRECT, F_AGEINWORKINGDAYSTHRESHOLD('12.12.2008', '17.12.2008', 0, 0, 3, 1, 7) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_AGEINWORKINGDAYSTHR(NULL, NULL, NULL) FROM RDB$DATABASE;
F_AGEINHOURSTHRESHOLD
Funktion von adhoc
Entrypoint ageinhoursthreshold UTF-8 kompatibel
Output INTEGER  Zeitdifferenz in (ganzzahligen) Stunden von Datum 1 zu Datum 2
F_AGEINHOURSTHRESHOLDN Funktion von adhoc
Entrypoint ageinhoursthresholdnull UTF-8 kompatibel
Output INTEGER  Zeitdifferenz in (ganzzahligen) Stunden von Datum 1 zu Datum 2
F_AGEINMINUTESTHRESHOLD
Funktion von adhoc
Entrypoint ageinminutesthreshold UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Minuten von Datum 1 zu Datum 2
F_AGEINMINUTESTHRESHOLDN Funktion von adhoc
Entrypoint ageinminutesthresholdnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Minuten von Datum 1 zu Datum 2
F_AGEINSECONDSTHRESHOLD  Funktion von adhoc
Entrypoint ageinsecondsthreshold UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Sekunden von Datum 1zu Datum 2
F_AGEINSECONDSTHRESHOLDN Funktion von adhoc
Entrypoint ageinsecondsthresholdnull UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Sekunden von Datum 1zu Datum 2
Steht der Parameter Minimalwert auf 1, wird bei der Ausgabe mindestens der Minimalwert ausgegeben
Steht Parameter Maximalwert auf 1, wird bei der Ausgabe höchstens der Maximalwert ausgegeben
Aus Kompatibilitätsgründen:
Wenn Datum 2 < als Datum 1 ist das Ergebnis negativ. Eigentlich müßte es 0 sein, denn es gibt kein negatives Alter!
Verwenden Sie F_AGEIN...N oder F_...BETWEEN wenn Sie kein negatives Alter wünschen.
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 •
Input für alle
folgenden immer
TIMESTAMP
TIMESTAMP
Datum optional Uhrzeit 1
Datum optional Uhrzeit 2
F_YEARSBETWEEN kompatibel zu GrUDF
Entrypoint yearsbetween UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Jahren von Datum 1 zu Datum 2
F_MONTHSBETWEEN Funktion von adhoc
Entrypoint monthsbetween UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Monaten von Datum 1 zu Datum 2
F_WEEKSBETWEEN kompatibel zu GrUDF
Entrypoint weeksbetween UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Wochen von Datum 1 zu Datum 2
Rechnet mit Sonntag als 1. Tag der Woche.
Sind beide Datum in der gleichen Woche, ist das Ergebnis 0
F_WEEKSBETWEENISO Funktion von adhoc
Entrypoint weeksbetweeniso UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Wochen von Datum 1 zu Datum 2
ISO-Version von F_WEEKSBETWEEN mit Montag als 1. Tag der Woche
Sind beide Datum in der gleichen Woche, ist das Ergebnis 0
F_DAYSBETWEEN Funktion von adhoc
Entrypoint daysbetween UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Tagen von Datum 1 zu Datum 2
F_WORKINGDAYSBETWEEN Funktion von adhoc
Entrypoint workingdaysbetween UTF-8 kompatibel
Input TIMESTAMP
TIMESTAMP
INTEGER
(kleineres) Datum optional Uhrzeit 1
(größeres) Datum optional Uhrzeit 2
auszulassende/r Wochentag/e
Output INTEGER Zeitdifferenz in (ganzzahligen) Tagen von Datum 1 zu Datum 2 abzüglich
des/der Wochentag/e aus Parameter 3
Wochentag: Montag = 1, Dienstag = 2, Mittwoch = 3, Donnerstag = 4, Freitag = 5, Samstag = 6, Sonntag = 7
Das Ergebnis ist immer positiv.
Die Reihenfolge bei mehreren Wochentagen für die Kennziffern für den Wochentag ist beliebig.
Es werden nur gültige Kennzahlen berücksichtigt.
Test SQL
SELECT 4 AS ISCORRECT, F_WORKINGDAYSBETWEEN('12.12.2008', '17.12.2008', 7) FROM RDB$DATABASE;
SELECT 4 AS ISCORRECT, F_WORKINGDAYSBETWEEN('17.12.2008', '12.12.2008', 7) FROM RDB$DATABASE;
SELECT -4 AS ISCORRECT, F_AGEINWORKINGDAYS('17.12.2008', '12.12.2008', 7) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_WORKINGDAYSBETWEEN(NULL, NULL, NULL) FROM RDB$DATABASE;
F_HOURSBETWEEN kompatibel zu GrUDF
Entrypoint hoursbetween UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Stunden von Datum 1 zu Datum 2
F_MINUTESBETWEEN kompatibel zu GrUDF
Entrypoint minutesbetween UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Minuten von Datum 1 zu Datum 2
F_INDMINUTESBETWEEN Funktion von adhoc
Entrypoint indminutesbetween UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Industrieminuten von Datum 1 zu Datum 2
funktioniert NICHT mit InterBase - bitte F_INDMINUTESBETWEENTHRIB benutzen
F_INDMINUTESBETWEENTHR Funktion von adhoc
Input TIMESTAMP
TIMESTAMP
TIME
INTEGER
TIME
INTEGER
Datum optional Uhrzeit 1
Datum optional Uhrzeit 2
Min-Zeit
benutze Min-Zeit (1= ja 0 = nein)
Max-Zeit
benutze Max-Zeit (1= ja 0 = nein)
Entrypoint indminutesbetweenthr UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Industrieminuten von Datum 1 zu Datum 2

Spezial-Version für InterBase (aber auch mit FireBird zu benutzen)
F_INDMINUTESBETWEENTHRIB Funktion von adhoc
Input TIMESTAMP
TIMESTAMP
TIMESTAMP !!!
INTEGER
TIMESTAMP !!!
INTEGER
Datum optional Uhrzeit 1
Datum optional Uhrzeit 2
Min-Datum-Uhrzeit
benutze Min-Zeit (1= ja 0 = nein)
Max-Datum-Uhrzeit
benutze Max-Zeit (1= ja 0 = nein)
Entrypoint indminutesbetweenthrib UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Industrieminuten von Datum 1 zu Datum 2
F_SECONDSBETWEEN kompatibel zu GrUDF
Entrypoint secondsbetween UTF-8 kompatibel
Output INTEGER Zeitdifferenz in (ganzzahligen) Sekunden von Datum 1 zu Datum 2
Ergibt immer positive Zahlen im Unterschied zu den Funktionen F_AGEIN.., die auch negative Werte ergeben können.
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 800 AS ISCORRECT, F_INDMINUTESBETWEEN('08.11.2008 16:00:00', '08.11.2008 08:00:00') FROM RDB$DATABASE;
SELECT 800 AS ISCORRECT, F_INDMINUTESBETWEEN('08.11.2008 08:00:00', '08.11.2008 16:00:00') FROM RDB$DATABASE;
SELECT 808 AS ISCORRECT, F_INDMINUTESBETWEEN('08.11.2008 08:00:00', '08.11.2008 16:05:29') FROM RDB$DATABASE;
SELECT 810 AS ISCORRECT, F_INDMINUTESBETWEEN('08.11.2008 08:00:00', '08.11.2008 16:05:30') FROM RDB$DATABASE;
SELECT 818 AS ISCORRECT, F_INDMINUTESBETWEEN('08.11.2008 07:55:00', '08.11.2008 16:05:30') FROM RDB$DATABASE;
SELECT 817 AS ISCORRECT, F_INDMINUTESBETWEEN('08.11.2008 07:55:00', '08.11.2008 16:05:00') FROM RDB$DATABASE;
SELECT 800 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 07:55:00', '08.11.2008 16:05:00', '08:00', 1, '16:00', 1) FROM RDB$DATABASE;
SELECT 808 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 07:55:00', '08.11.2008 16:05:00', '08:00', 0, '16:00', 1) FROM RDB$DATABASE;
SELECT 808 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 16:05:00', '08.11.2008 07:55:00', '08:00', 0, '16:00', 1) FROM RDB$DATABASE;
SELECT 817 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 07:55:00', '08.11.2008 16:05:00', '08:00', 0, '16:00', 0) FROM RDB$DATABASE;
SELECT 817 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 07:55:00', '08.11.2008 16:05:00', '00:00', 0, '00:00', 0) FROM RDB$DATABASE;
SELECT 817 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 07:55:00', '08.11.2008 16:05:00', null, null, null, null) FROM RDB$DATABASE;
SELECT 817 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 16:05:00', '08.11.2008 07:55:00', null, null, null, null) FROM RDB$DATABASE;
SELECT 800 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 21:55:00', '09.11.2008 06:05:00', '22:00', 1, '06:00', 1) FROM RDB$DATABASE;
SELECT 808 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 21:55:00', '09.11.2008 06:05:00', '22:00', 1, '06:00', null) FROM RDB$DATABASE;
SELECT 800 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 07:55:00', '08.11.2008 16:05:00', '08:00', 1, '16:00', 1) FROM RDB$DATABASE;
SELECT 808 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 07:55:00', '08.11.2008 16:05:00', '08:00', 0, '16:00', 1) FROM RDB$DATABASE;
SELECT 817 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 07:55:00', '08.11.2008 16:05:00', '08:00', 0, '16:00', 0) FROM RDB$DATABASE;
SELECT 818 AS ISCORRECT, F_INDMINUTESBETWEENTHR('08.11.2008 07:55:00', '08.11.2008 16:05:30', '08:00', 0, '16:00', 0) 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 •
ab ersetzbar durch EXTRACT(YEARDAY FROM ...)
F_DAYOFYEAR
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint dayofyear UTF-8 kompatibel
F_EXTRACTYEARDAY Input/Output-kompatibel zu rFunc (EXTRACTYEARDAY)
Entrypoint r_yearday UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER Anzahl der Tage des Jahres (Tag Nr. x des Jahres) bis zum gewählten Datum
F_DAYOFYEAR: Zählung beginnt bei 1
F_EXTRACTYEARDAY: Zählung beginnt bei 0

TestSQL
SELECT 235 AS ISCORRECT, F_DAYOFYEAR('22.08.2004') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DAYOFYEAR(NULL) FROM RDB$DATABASE;
SELECT 234 AS ISCORRECT, F_EXTRACTYEARDAY('22.08.2004'), F_DAYOFYEAR('22.08.2004') FROM RDB$DATABASE;
nach oben • go top •
ab ersetzbar durch EXTRACT(DAY FROM ...)
F_DAYOFMONTH
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Input/Output-kompatibel zu rFunc (EXTRACTDAY)
Entrypoint dayofmonth UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER Tag des Monats
Zählung beginnt bei 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 •
ab ersetzbar durch EXTRACT(WEEKDAY FROM ...)
F_DAYOFWEEK
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint dayofweek UTF-8 kompatibel
F_EXTRACTWEEKDAY Input/Output-kompatibel zu rFunc (EXTRACTWEEKDAY)
Entrypoint r_weekday UTF-8 kompatibel
F_DOW Input/Output-kompatibel zu rFunc (DOW)
Entrypoint r_dow UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER Tag der Woche als Zahlenwert des gewählten Datum
F_DAYOFWEEK: Sonntag = 1, Montag = 2, Dienstag = 3, Mittwoch = 4, Donnerstag = 5, Freitag = 6, Samstag = 7
F_EXTRACTWEEKDAY: Sonntag = 0, Montag = 1, Dienstag = 2, Mittwoch = 3, Donnerstag = 4, Freitag = 5, Samstag = 6
F_DOW: Sonntag = 7, Montag = 1, Dienstag = 2, Mittwoch = 3, Donnerstag = 4, Freitag = 5, Samstag = 6

TestSQL
SELECT 1 AS ISCORRECT, F_DAYOFWEEK('22.08.2004') FROM RDB$DATABASE;
SELECT NULL  AS ISCORRECT, F_DAYOFWEEK(NULL) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_EXTRACTWEEKDAY('22.08.2004'), F_DAYOFWEEK('22.08.2004') FROM RDB$DATABASE;
SELECT 7 AS ISCORRECT, F_DOW('22.08.2004') FROM RDB$DATABASE;
nach oben • go top •
F_DAYSOFMONTH
Funktion von adhoc
Input/Output-kompatibel zu rFunc (DAYPERMONTH)
Entrypoint daysofmonth UTF-8 kompatibel
Input INTEGER
INTEGER
Monat
Jahr
Output INTEGER Anzahl der Tage (letzter Tag) des gewählten Monats für das gewählte Jahr
Zählung beginnt bei 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 kompatibel zu GrUDF
Entrypoint lastday UTF-8 kompatibel
Input INTEGER
INTEGER
Jahr
Monat
Output INTEGER letzten Tag des gewählten Monats aus dem gewählten Jahr
Zählung beginnt bei 1
(Fast) identisch zu F_DAYSOFMONTH, nur Parameter vertauscht (erst Jahr, dann Monat)
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_FIRSTDAYQUARTER Funktion von adhoc
Entrypoint firstdayquarter UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten Quartalstag als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '01.07.2008' AS ISCORRECT, F_FIRSTDAYQUARTER('06.09.2008 15:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FIRSTDAYQUARTER(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYQUARTER Funktion von adhoc
Entrypoint lastdayquarter UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten Quartalstag als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '30.09.2008' AS ISCORRECT, F_LASTDAYQUARTER('06.09.2008 15:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LASTDAYQUARTER(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYMONTH Input/Output-kompatibel zu rFunc (FIRSTDAYMONTH)
Entrypoint firstdaymonth UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten Monatstag als Tag und Uhrzeit 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 Input/Output-kompatibel zu rFunc (LASTDAYMONTH)
Entrypoint lastdaymonth UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten Monatstag als Tag und Uhrzeit 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_FIRSTDAYWEEK Funktion von adhoc
Entrypoint firstdayweek UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten (US)Wochentag (Sonntag) als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '21.12.2008' AS ISCORRECT, F_FIRSTDAYWEEK('26.12.2008 15:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FIRSTDAYWEEK(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYWEEK Funktion von adhoc
Entrypoint lastdayweek UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten (US)Wochentag (Samstag) als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '27.12.2008' AS ISCORRECT, F_LASTDAYWEEK('26.12.2008 15:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LASTDAYWEEK(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYWEEKISO Funktion von adhoc
Entrypoint firstdayweekiso UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten (ISO)Wochentag (Montag) als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '22.12.2008' AS ISCORRECT, F_FIRSTDAYWEEKISO('26.12.2008 15:00:00') FROM RDB$DATABASE;
SELECT '29.12.2008' AS ISCORRECT, F_FIRSTDAYWEEKISO('03.01.2009 15:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FIRSTDAYWEEKISO(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYWEEKISO Funktion von adhoc
Entrypoint lastdayweekiso UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten (ISO)Wochentag (Sonntag) als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '28.12.2008' AS ISCORRECT, F_LASTDAYWEEKISO('26.12.2008 15:00:00') FROM RDB$DATABASE;
SELECT '04.01.2009' AS ISCORRECT, F_LASTDAYWEEKISO('29.12.2008 15:00:00') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LASTDAYWEEKISO(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYWOY Funktion von adhoc
Entrypoint firstdaywoy UTF-8 kompatibel
Input INTEGER
INTEGER
Kalenderwoche
Jahr
Output TIMESTAMP Datum mit dem ersten Tag der (US)Woche des Jahres als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '26.12.2004' AS ISCORRECT, F_FIRSTDAYWOY(1, 2005) FROM RDB$DATABASE;;
SELECT NULL AS ISCORRECT, F_FIRSTDAYWOY(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYWOY Funktion von adhoc
Entrypoint lastdaywoy UTF-8 kompatibel
Input INTEGER
INTEGER
Kalenderwoche
Jahr
Output TIMESTAMP Datum mit dem letzten Tag der (US)Woche des Jahres als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '01.01.2005' AS ISCORRECT, F_LASTDAYWOY(1, 2005) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LASTDAYWOY(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYKW Funktion von adhoc
Entrypoint firstdaykw UTF-8 kompatibel
Input INTEGER
INTEGER
Kalenderwoche
Jahr
Output TIMESTAMP Datum mit dem ersten Tag der (ISO)Kalenderwoche als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '27.12.2004' AS ISCORRECT, F_FIRSTDAYKW(53, 2004) FROM RDB$DATABASE;
SELECT '03.01.2005' AS ISCORRECT, F_FIRSTDAYKW(1, 2005) FROM RDB$DATABASE;
SELECT '28.04.2008' AS ISCORRECT, F_FIRSTDAYKW(18, 2008) FROM RDB$DATABASE;
SELECT '23.03.2009' AS ISCORRECT, F_FIRSTDAYKW(13, 2009) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_FIRSTDAYKW(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYKW Funktion von adhoc
Entrypoint lastdaykw UTF-8 kompatibel
Input INTEGER
INTEGER
Kalenderwoche
Jahr
Output TIMESTAMP Datum mit dem letzten Tag der (ISO)Kalenderwoche als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '02.01.2005' AS ISCORRECT, F_LASTDAYKW(53, 2004) FROM RDB$DATABASE;
SELECT '09.01.2005' AS ISCORRECT, F_LASTDAYKW(1, 2005) FROM RDB$DATABASE;
SELECT '04.05.2008' AS ISCORRECT, F_LASTDAYKW(18, 2008) FROM RDB$DATABASE;
SELECT '29.03.2009' AS ISCORRECT, F_LASTDAYKW(13, 2009) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_LASTDAYKW(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYLASTQUARTER Funktion von adhoc
Entrypoint firstdaylastquarter UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten Tag des letzten Quartals als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '01.01.2009' AS ISCORRECT, F_FIRSTDAYLASTQUARTER('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '01.10.2008' AS ISCORRECT, F_FIRSTDAYLASTQUARTER('08.02.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYLASTQUARTER Funktion von adhoc
Entrypoint lastdaylastquarter UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten Tag des letzten Quartals als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '31.03.2009' AS ISCORRECT, F_LASTDAYLASTQUARTER('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '31.12.2008' AS ISCORRECT, F_LASTDAYLASTQUARTER('08.02.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYLASTMONTH Input/Output-kompatibel zu rFunc (FIRSTDAYMONTH)
Entrypoint firstdaylastmonth UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten Tag des letzten Monats als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '01.04.2009' AS ISCORRECT, F_FIRSTDAYLASTMONTH('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '01.12.2008' AS ISCORRECT, F_FIRSTDAYLASTMONTH('03.01.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYLASTMONTH Input/Output-kompatibel zu rFunc (LASTDAYMONTH)
Entrypoint lastdaylastmonth UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten Tag des letzten Monats als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '30.04.2009' AS ISCORRECT, F_LASTDAYLASTMONTH('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '31.12.2008' AS ISCORRECT, F_LASTDAYLASTMONTH('03.01.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYLASTWEEK Funktion von adhoc
Entrypoint firstdaylastweek UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten (US)Wochentag (Sonntag) der letzten Woche als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '26.04.2009' AS ISCORRECT, F_FIRSTDAYLASTWEEK('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '21.12.2008' AS ISCORRECT, F_FIRSTDAYLASTWEEK('02.01.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYLASTWEEK Funktion von adhoc
Entrypoint lastdaylastweek UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten (US)Wochentag (Samstag) der letzten Woche als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '02.05.2009' AS ISCORRECT, F_LASTDAYLASTWEEK('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '27.12.2008' AS ISCORRECT, F_LASTDAYLASTWEEK('02.01.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYLASTWEEKISO Funktion von adhoc
Entrypoint firstdaylastweekiso UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten (ISO)Wochentag (Montag) der letzten Woche als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '27.04.2009' AS ISCORRECT, F_FIRSTDAYLASTWEEKISO('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '22.12.2008' AS ISCORRECT, F_FIRSTDAYLASTWEEKISO('02.01.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYLASTWEEKISO Funktion von adhoc
Entrypoint lastdaylastweekiso UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten (ISO)Wochentag (Sonntag) der letzten Woche als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '03.05.2009' AS ISCORRECT, F_LASTDAYLASTWEEKISO('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '28.12.2008' AS ISCORRECT, F_LASTDAYLASTWEEKISO('02.01.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYNEXTQUARTER Funktion von adhoc
Entrypoint firstdaynextquarter UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten Tag des nächsten Quartals als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '01.07.2009' AS ISCORRECT, F_FIRSTDAYNEXTQUARTER('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '01.01.2010' AS ISCORRECT, F_FIRSTDAYNEXTQUARTER('08.11.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYNEXTQUARTER Funktion von adhoc
Entrypoint lastdaynextquarter UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten Tag des nächsten Quartals als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '30.09.2009' AS ISCORRECT, F_LASTDAYNEXTQUARTER('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '31.03.2010' AS ISCORRECT, F_LASTDAYNEXTQUARTER('08.11.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYNEXTMONTH Input/Output-kompatibel zu rFunc (FIRSTDAYMONTH)
Entrypoint firstdaynextmonth UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten Tag des nächsten Monats als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '01.06.2009' AS ISCORRECT, F_FIRSTDAYNEXTMONTH('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '01.01.2010' AS ISCORRECT, F_FIRSTDAYNEXTMONTH('08.12.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYNEXTMONTH Input/Output-kompatibel zu rFunc (LASTDAYMONTH)
Entrypoint lastdaynextmonth UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten Tag des nächsten Monats als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '30.06.2009' AS ISCORRECT, F_LASTDAYNEXTMONTH('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '31.01.2010' AS ISCORRECT, F_LASTDAYNEXTMONTH('08.12.2009 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYNEXTWEEK Funktion von adhoc
Entrypoint firstdaynextweek UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten (US)Wochentag (Sonntag) der nächsten Woche als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '10.05.2009' AS ISCORRECT, F_FIRSTDAYNEXTWEEK('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '04.01.2009' AS ISCORRECT, F_FIRSTDAYNEXTWEEK('30.12.2008 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYNEXTWEEK Funktion von adhoc
Entrypoint lastdaynextweek UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten (US)Wochentag (Samstag) der nächsten Woche als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '16.05.2009' AS ISCORRECT, F_LASTDAYNEXTWEEK('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '10.01.2009' AS ISCORRECT, F_LASTDAYNEXTWEEK('30.12.2008 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_FIRSTDAYNEXTWEEKISO Funktion von adhoc
Entrypoint firstdaynextweekiso UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem ersten (ISO)Wochentag (Montag) der nächsten Woche als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '11.05.2009' AS ISCORRECT, F_FIRSTDAYNEXTWEEKISO('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '05.01.2009' AS ISCORRECT, F_FIRSTDAYNEXTWEEKISO('30.12.2008 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_LASTDAYNEXTWEEKISO Funktion von adhoc
Entrypoint lastdaynextweekiso UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Datum mit dem letzten (ISO)Wochentag (Sonntag) der nächsten Woche als Tag und Uhrzeit 00:00:00
TestSQL
SELECT '17.05.2009' AS ISCORRECT, F_LASTDAYNEXTWEEKISO('08.05.2009 15:00:00') FROM RDB$DATABASE;
SELECT '11.01.2009' AS ISCORRECT, F_LASTDAYNEXTWEEKISO('30.12.2008 15:00:00') FROM RDB$DATABASE;
nach oben • go top •
F_DTIME Funktion von adhoc
Entrypoint dtime UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output TIMESTAMP Anzahl der Tage des gewählten Datums seit dem 31.12.1899
Die Zählung beginnt bei 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
kompatibel zu FreeUDFLibC
Entrypoint isleapyear UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER 1 = ist Schaltjahr, 0 = ist kein Schaltjahr
Algorithmus Y2k-fest (2000 war ein Schaltjahr).
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 Input/Output-kompatibel zu rFunc (ISLEAPYEAR)
Entrypoint r_isleapyear UTF-8 kompatibel
Input INTEGER Jahr
Output INTEGER 1 = ist Schaltjahr, 0 = ist kein Schaltjahr
Algorithmus Y2k-fest (2000 war ein Schaltjahr).
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 kompatibel zu FreeUDFLib AvERP, GrUDF
Entrypoint zeitdifferenz UTF-8 kompatibel
Input TIMESTAMP
TIMESTAMP
CSTRING(1)
Datum 1 optional Uhrzeit
Datum 2 optional Uhrzeit
Art der Ausgabe
                    t = Zeitdifferenz in Tagen
                    h = Zeitdifferenz in Stunden
                    m = Zeitdifferenz in Minuten
                    s = Zeitdifferenz in Sekunden
                    alle anderen Werte ergeben immer 0
Output DOUBLE Zeitdifferenz von Datum 1 zu Datum 2, Ausgabe als Fließkommazahl in der im Parameter 3 gewählten Ausgabeart
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 Funktion von adhoc
Entrypoint countweekdays UTF-8 kompatibel
Input TIMESTAMP1
TIMESTAMP2
INTEGER
Datum1 optional Uhrzeit
Datum2 optional Uhrzeit
Nr. des Wochentages
Output INTEGER Anzahl der gewählten Wochentage im Zeitraum
Montag = 1, Dienstag = 2, Mittwoch = 3, Donnerstag = 4, Freitag = 5, Samstag = 6, Sonntag = 7
Berechnet die Anzahl des gewählten Wochentages im Zeitraum zwischen Datum1 und Datum2.
Ab Version adhoc20090128
- muß Datum/Uhrzeit1 nicht mehr früher als Datum/Uhrzeit2 sein (Reihenfolge beliebig)
- wird für alle Wochentag-Nr. < 1 und > 7 immer 0 ausgegeben

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 1 AS ISCORRECT, F_COUNTWEEKDAYS('12.12.2008', '17.12.2008', 6) FROM RDB$DATABASE;
SELECT 1 AS ISCORRECT, F_COUNTWEEKDAYS('17.12.2008', '12.12.2008', 6) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_COUNTWEEKDAYS('12.12.2008', '17.12.2008', 9) FROM RDB$DATABASE;
SELECT 0 AS ISCORRECT, F_COUNTWEEKDAYS('12.12.2008', '17.12.2008', -5) FROM RDB$DATABASE;

SELECT NULL AS ISCORRECT, F_COUNTWEEKDAYS(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
Vorbemerkung zu Berechnung der Woche eines Jahres - Kalenderwoche (s. u.a. Wikipedia):
Das Jahr umfasst mindestens 52 durchnummerierte Kalenderwochen (KW), wobei es bei den Wochen-Nummerierungen verschiedene Variationen gibt. Je nach angewandter Regel ist die erste Woche des Jahres
    * jene, in die der 1. Januar fällt (USA, Excel-Funktion „Kalenderwoche“)
    * die erste Woche, in die mindestens vier Tage des neuen Jahres fallen (DIN 1355 / ISO 8601)
    * die erste vollständige Woche des Jahres (selten)
Die internationale Norm ISO 8601 (1973) legt als Wochenanfang den Montag fest. Seit 1976 ist in Deutschland der Montag der erste Wochentag (DIN 1355). Im Jahre 1978 beschloss auch die UNO, dass der Montag international als der erste Tag der Woche gelten solle.
Daraus ergeben sich folgenden Regeln:
    * Jeden Montag und nur montags beginnt eine neue Kalenderwoche
    * Die erste Kalenderwoche ist diejenige, die mindestens 4 Tage des neuen Jahres enthält
Aus diesen Punkten können folgende Eigenschaften geschlussfolgert werden:
    * Es gibt keine unvollständigen Kalenderwochen, ausnahmslos jede KW enthält genau 7 Tage
    * Jedes Jahr hat entweder 52 oder 53 Kalenderwochen
    * Ein Jahr hat genau dann 53 Kalenderwochen, wenn es mit einem Donnerstag beginnt oder endet
    * Der 29., 30. und 31. Dezember können schon zur ersten Kalenderwoche des Folgejahres gehören
    * Der 1., 2. und 3. Januar können noch in der letzten Kalenderwoche des Vorjahres liegen
In weiten Teilen der Welt (beispielsweise Nordamerika, Australien) hat sich die Tradition des Judentums und Christentums erhalten, den Sonntag als ersten Tag der Woche zu rechnen. In den USA und Ländern, die ebenfalls das dort gültige Schema verwenden, gelten folgende Regeln:
    * Jeden Sonntag beginnt eine neue Kalenderwoche
    * Am 1. Januar beginnt stets - unabhängig vom Wochentag - die 1. Kalenderwoche
Daraus lassen sich wiederum einige Eigenschaften ableiten:
    * Die erste und die letzte Kalenderwoche eines Jahres müssen nicht vollständig sein, d. h. sie können weniger als 7 Tage enthalten
    * Jedes Jahr hat 53 Kalenderwochen
    * Falls der 31. Dezember ein Sonntag ist, der erste Januar des gleichen Jahres aber kein Sonntag war, so liegt dieser Sonntag als einziger Tag in der 54. Kalenderwoche (Dieser Fall tritt relativ selten ein: Zuletzt im Jahr 2000, das nächste Mal im Jahr 2028).
Leider hat Gregory Deatz die Regeln nicht genau gelesen, so dass einige Funktionen nun weder nach der "USA-Norm" noch nach ISO rechnen (bei den Berechnungen wird der Sonntag als Beginn der Woche gerechnet). Dies betrifft die Funktionen F_YEAROFYEAR, F_WEEKOFYEAR, und F_WOY. Diese Funktionen sollten nicht verwendet werden.
Die Funktionen F_YEAR und F_WEEK rechnen nach "USA-Norm", die Funktionen F_KALENDERWOCHE und F_WOYISO nach ISO 8601
.
ab ersetzbar durch EXTRACT(YEAR FROM ...)
F_YEAR
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Input/Output-kompatibel zu rFunc (EXTRACTYEAR)
Entrypoint year UTF-8 kompatibel
F_YEAROFYEAR (nicht verwenden)
kompatibel zu FreeUDFLibC
Entrypoint yearofyear UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER das Jahr des gewählten Datums
F_YEAR rechnet nach USA-Norm: Woche beginnt mit Sonntag, Woche mit 1. Januar ist KW 1
F_YEAROFYEAR rechnet nach falscher ISO-Norm: Woche beginnt mit Sonntag, KW 1 beginnt mit Sonntag bis Mittwoch
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
 
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Input/Output-kompatibel zu rFunc (QUARTER)
Entrypoint quarter UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER das Quartal des gewählten Datums
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 •
ab ersetzbar durch EXTRACT(MONTH FROM ...)
F_MONTH
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Input/Output-kompatibel zu rFunc (EXTRACTMONTH)
Entrypoint month UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER den Monat des gewählten Datums
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
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP, GrUDF
Entrypoint week UTF-8 kompatibel
F_WEEKOFYEAR (nicht verwenden) kompatibel zu FreeUDFLibC
Entrypoint weekofyear UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER die Woche des gewählten Datums
Berechnung wie in den USA üblich: Die Zählung beginnt bei der Woche 1 in die der 1. Januar fällt.
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 (nicht verwenden) kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Entrypoint woy UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output CSTRING(6) das Jahr und die Woche des Jahres als einen zusammenhängenden String
Berechnet nach Gregory Deatz das Jahr und die Kalenderwoche, in die das Datum fällt (mit Sonntag als 1. Tag der Woche - s.o.).
TestSQL
SELECT '200452' AS ISCORRECT, F_WOY('01.01.2005') FROM RDB$DATABASE;
SELECT '200540' AS ISCORRECT, F_WOY('02.10.2005 14:38:12') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_WOY(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_WOYISO Funktion von adhoc
Entrypoint woyiso UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output CSTRING(6) 4-stelliges Jahr und 2-stellige KW als String
Berechnet nach ISO das Jahr und die Kalenderwoche, in die das Datum fällt. Fällt der 1. Januar noch in die KW 52, 53 oder 54 des vorigen Jahres, so ist auch das Output-Jahr das Vorjahr.
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 Funktion von adhoc
Entrypoint kalenderwoche UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER die Kalenderwoche des gewählten Datums nach ISO 8601
Berechnung nach ISO 8601: Die Zählung beginnt bei der Woche, in die mindestens 4 Tage des neuen Jahres fallen.
TestSQL
SELECT 53 AS ISCORRECT, F_KALENDERWOCHE('31.12.1992') FROM RDB$DATABASE;
SELECT 53 AS ISCORRECT, F_KALENDERWOCHE('31.12.1998') FROM RDB$DATABASE;
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('31.12.2004') 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 53 AS ISCORRECT, F_KALENDERWOCHE('31.12.2009') FROM RDB$DATABASE;
SELECT 53 AS ISCORRECT, F_KALENDERWOCHE('31.12.2015') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_KALENDERWOCHE(NULL) FROM RDB$DATABASE;
nach oben • go top •
ab ersetzbar durch EXTRACT(HOUR FROM ...)
F_HOUR
kompatibel zu FreeUDFLibC, GrUDF
Input/Output-kompatibel zu rFunc (EXTRACTHOUR)
Entrypoint hour UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER die Stunden der Uhrzeit des gewählten Datums
Wird nur ein Datum eingegeben, ist die Stunde 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 •
ab ersetzbar durch EXTRACT(MINUTE FROM ...)
F_MINUTE
kompatibel zu FreeUDFLibC, GrUDF
Input/Output-kompatibel zu rFunc (EXTRACTMINUTE)
Entrypoint minute UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER die Minuten der Uhrzeit des gewählten Datums
Wird nur ein Datum eingegeben, ist die Minute 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 •
ab ersetzbar durch EXTRACT(SECOND FROM ...)
F_SECOND
kompatibel zu FreeUDFLibC, GrUDF
Input/Output-kompatibel zu rFunc (EXTRACTSECOND)
Entrypoint second UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER die Sekunden der Uhrzeit des gewählten Datums
Wird nur ein Datum eingegeben, ist die Sekunde 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
Input/Output-kompatibel zu rFunc (EXTRACTMILLISECOND)
Entrypoint millisecond UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output INTEGER die Millisekunden der Uhrzeit des gewählten Datums
Wird nur ein Datum eingegeben, ist die Millisekunde 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 •
F_TZVALUETOUTC
Funktion von adhoc
Entrypoint tzvalue_to_utc UTF-8 kompatibel
Input ohne
Output DOUBLE Differenz der lokalen Zeit zur koordinierten Weltzeit UTC (universal time code) in Stunden
TestSQL
SELECT CAST(DATEDIFF(MINUTE, CURRENT_TIMESTAMP, F_LOCAL2UTC(CURRENT_TIMESTAMP)) / 60 AS DOUBLE PRECISION) AS ISCORRECT, F_TZVALUETOUTC() FROM RDB$DATABASE
nach oben • go top •
 
Datum-/Zeit Funktionen: Formatieren
F_CMONTHLONG FreeUDFLibC
Entrypoint cmonthlong UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output CSTRING(16) der  Monat in Englisch
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 •
U_MONTHLONG kompatibel zu FreeUDFLib, FreeUDFLib AvERP, GrUDF
Entrypoint u_monthlong UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output CSTRING(20) der  Monat in der Sprache des Betriebssystems
TestSQL
SELECT 'deutsch: Januar' AS ISCORRECT, U_MONTHLONG('01.01.2010') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, U_MONTHLONG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CMONTHLONGLANG Funktion von adhoc
Entrypoint cmonthlonglang nicht UTF-8 kompatibel - benutze U_MONTHLONGLANG
Input TIMESTAMP
CSTRING(2)
Datum optional Uhrzeit
Sprachkennzeichen für die Ausgabe
Output CSTRING(16) der Monat in der gewählten Sprache
Sprachversion von F_CMONTHLONG.
Sprachkennzeichen: uk = englisch, de = deutsch, fr = französich, it = italienisch, es = spanisch, pt = portugisisch,
nl = niederländisch, no = norwegisch Bokmål, se = schwedisch, dk = dänisch, fi = finnisch, hu = ungarisch, ie = irisch(es gälisch),
ee = estnisch, is = isländisch, al = albanisch, va = lateinisch, v1 = kirchlisches lateinisch, c1 = katalanisch, s1 = schottisch,
s2 = schottisches gälisch, w1 = walisich, b1 = bretonisch, b2 = baskisch, n1 = norwegisch Nynorsk, za = afrikaans,
fo = faörisch, lu = luxembourgisch, w2 = wallonisch
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 •
U_MONTHLONGLANG Funktion von adhoc
Entrypoint u_monthlonglang UTF-8 kompatibel
Input TIMESTAMP
CSTRING(2)
Datum optional Uhrzeit
Sprachkennzeichen für die Ausgabe
Output CSTRING(16) der Monat in der gewählten Sprache
Sprachversion von U_MONTHLONG
Sprachkennzeichen: jedes gültige 2-stellige Sprachkennzeichen analog den TopLevelDomains , z.B. de für deutsch
TestSQL
SELECT 'Août' AS ISCORRECT, U_MONTHLONGLANG('23.08.2004', 'fr') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, U_MONTHLONGLANG(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CMONTHSHORT FreeUDFLibC
Entrypoint cmonthshort UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output CSTRING(4) der Monat abgekürzt in Englisch
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 •
U_MONTHSHORT kompatibel zu FreeUDFLib, FreeUDFLib AvERP, GrUDF
Entrypoint u_monthshort UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output CSTRING(4) der Monat abgekürzt in der Sprache des Betriebssystems
TestSQL
SELECT 'deutsch: Jan' AS ISCORRECT, U_MONTHSHORT('01.01.2010') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, U_MONTHSHORT(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CMONTHSHORTLANG Funktion von adhoc
Entrypoint cmonthshortlang nicht UTF-8 kompatibel - benutze U_MONTHSHORTLANG
Input TIMESTAMP
CSTRING(2)
Datum optional Uhrzeit
Sprachkennzeichen für die Ausgabe
Output CSTRING(4) der Monat abgekürzt in der gewählten Sprache
Sprachversion von F_CMONTHSHORT.
Sprachkennzeichen: uk = englisch, de = deutsch, fr = französich, it = italienisch, es = spanisch, pt = portugisisch,
nl = niederländisch, no = norwegisch Bokmål, se = schwedisch, dk = dänisch, fi = finnisch, hu = ungarisch, ie = irisch(es gälisch),
ee = estnisch, is = isländisch, al = albanisch, va = lateinisch, v1 = kirchlisches lateinisch, c1 = katalanisch, s1 = schottisch,
s2 = schottisches gälisch, w1 = walisich, b1 = bretonisch, b2 = baskisch, n1 = norwegisch Nynorsk, za = afrikaans,
fo = faörisch, lu = luxembourgisch, w2 = wallonisch
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 •
U_MONTHSHORTLANG Funktion von adhoc
Entrypoint u_monthshortlang UTF-8 kompatibel
Input TIMESTAMP
CSTRING(2)
Datum optional Uhrzeit
Sprachkennzeichen für die Ausgabe
Output CSTRING(4) der Monat abgekürzt in der gewählten Sprache
Sprachversion von U_MONTHSHORT
Sprachkennzeichen: jedes gültige 2-stellige Sprachkennzeichen analog den TopLevelDomains , z.B. de für deutsch
TestSQL
SELECT 'Aoû' AS ISCORRECT, U_MONTHSHORTLANG('23.08.2004', 'fr') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, U_MONTHSHORTLANG(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CDOWLONG kompatibel zu FreeUDFLibC
Entrypoint cdowlong UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output CSTRING(16) der Tag der Woche in Englisch
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 •
U_DOWLONG kompatibel zu FreeUDFLib, FreeUDFLib AvERP, GrUDF
Entrypoint u_dowlong UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output CSTRING(16) der Tag der Woche in der Sprache des Betriebssystems
TestSQL
SELECT 'deutsch: Donnerstag' AS ISCORRECT, U_DOWLONG('11.11.2010') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, U_DOWLONG(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CDOWLONGLANG Funktion von adhoc
Entrypoint cdowlonglang nicht UTF-8 kompatibel - benutze U_DOWLONGLANG
Input TIMESTAMP
CSTRING(2)
Datum optional Uhrzeit
Sprachkennzeichen für die Ausgabe
Output CSTRING(16) der Tag der Woche in der gewählten Sprache
Sprachversion von F_CDOWLONG.
Sprachkennzeichen: uk = englisch, de = deutsch, fr = französich, it = italienisch, es = spanisch, pt = portugisisch,
nl = niederländisch, no = norwegisch Bokmål, se = schwedisch, dk = dänisch, fi = finnisch, hu = ungarisch, ie = irisch(es gälisch),
ee = estnisch, is = isländisch, al = albanisch, va = lateinisch, v1 = kirchlisches lateinisch, c1 = katalanisch, s1 = schottisch,
s2 = schottisches gälisch, w1 = walisich, b1 = bretonisch, b2 = baskisch, n1 = norwegisch Nynorsk, za = afrikaans,
fo = faörisch, lu = luxembourgisch, w2 = wallonisch
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 •
U_DOWLONGLANG Funktion von adhoc
Entrypoint u_dowlonglang UTF-8 kompatibel
Input TIMESTAMP
CSTRING(2)
Datum optional Uhrzeit
Sprachkennzeichen für die Ausgabe
Output CSTRING(16) der Tag der Woche in der gewählten Sprache
Sprachversion von U_DOWLONG
Sprachkennzeichen: jedes gültige 2-stellige Sprachkennzeichen analog den TopLevelDomains , z.B. de für deutsch
TestSQL
SELECT 'Lundi' AS ISCORRECT, U_DOWLONGLANG('23.08.2004', 'fr') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, U_DOWLONGLANG(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CDOWSHORT kompatibel zu FreeUDFLibC
Entrypoint cdowshort UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output CSTRING(4) der Tag der Woche abgekürzt in Englisch
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 •
U_DOWSHORT kompatibel zu FreeUDFLib, FreeUDFLib AvERP, GrUDF
Entrypoint u_dowshort UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output CSTRING(4) der Tag der Woche abgekürzt in der Sprache des Betriebssystems
TestSQL
SELECT 'deutsch: Do.' AS ISCORRECT, U_DOWSHORT('11.11.2010') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, U_DOWSHORT(NULL) FROM RDB$DATABASE;
nach oben • go top •
F_CDOWSHORTLANG Funktion von adhoc
Entrypoint cdowshortlang nicht UTF-8 kompatibel - benutze U_DOWSHORTLANG
Input TIMESTAMP
CSTRING(2)
Datum optional Uhrzeit
Sprachkennzeichen für die Ausgabe
Output CSTRING(16) der Tag der Woche abgekürzt in der gewählten Sprache
Sprachversion von F_CDOWSHORT.
Sprachkennzeichen: uk = englisch, de = deutsch, fr = französich, it = italienisch, es = spanisch, pt = portugisisch,
nl = niederländisch, no = norwegisch Bokmål, se = schwedisch, dk = dänisch, fi = finnisch, hu = ungarisch, ie = irisch(es gälisch),
ee = estnisch, is = isländisch, al = albanisch, va = lateinisch, v1 = kirchlisches lateinisch, c1 = katalanisch, s1 = schottisch,
s2 = schottisches gälisch, w1 = walisich, b1 = bretonisch, b2 = baskisch, n1 = norwegisch Nynorsk, za = afrikaans,
fo = faörisch, lu = luxembourgisch, w2 = wallonisch
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 •
U_DOWSHORTLANG Funktion von adhoc
Entrypoint u_dowshortlang UTF-8 kompatibel
Input TIMESTAMP
CSTRING(2)
Datum optional Uhrzeit
Sprachkennzeichen für die Ausgabe
Output CSTRING(16) der Tag der Woche abgekürzt in der gewählten Sprache
Sprachversion von U_DOWSHORT
Sprachkennzeichen: jedes gültige 2-stellige Sprachkennzeichen analog den TopLevelDomains , z.B. de für deutsch
TestSQL
SELECT 'Lun' AS ISCORRECT, U_DOWSHORTLANG('23.08.2004', 'fr') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, U_DOWSHORTLANG(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_GFORMATD Funktion von adhoc
Entrypoint gformatd UTF-8 kompatibel
Input CSTRING(254)
TIMESTAMP
Pattern, wie Datum-Zeit aussehen soll
Datum-Zeitwert
Output CSTRING(254) formatiertes Datum entsprechend Parameter 1
Pattern für Parameter 1
     d        = Tag event. einstellig
     dd      = Tag immer zweistellig
     m       = Monat event. einstellig
     mm     = Monat immer zweistellig
     yy       = Jahr event. zweistellig
     yyyy   = Jahr immer vierstellig
     h        = Stunde event. einstellig
     hh      = Stunde immer zweistellig
     n        = Minute event. einstellig
     nn      = Minute immer zweistellig
     s        = Sekunde event. einstellig
     ss      = Sekunde immer zweistellig
     alle anderen Zeichen werden entsprechend Ihre Angabe in Parameter 1 an der jeweiligen Stelle angezeigt
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 Input/Output-kompatibel zu rFunc (DATETOSTR)
Entrypoint datetostr UTF-8 kompatibel
Input TIMESTAMP
CSTRING(254)
Datum-Zeitwert
Pattern, wie Datum-Zeit aussehen soll
Output CSTRING(254) formatiertes Datum entsprechend Parameter 2
Pattern für Parameter 2 (wie von c-Funktion strftime):
     %% - Zeichen %
     %c  - Datum/Uhrzeit
     %x  - Datum
     %d  - Tag des Monats (01-31)
     %j   - Tag des Jahres (000-366)
     %w - Tag der Woche (0-6), 0 = Sonntag
     %U - (US-)Kalenderwoche (00-53), Sonntag erster Tag der Woche
     %W- (US-)Kalenderwoche (00-53), Montag erster Tag der Woche
     %a  - Kurzform Wochentag (in englisch)
     %A -Langform Wochentag (in englisch)
     %m - Monat (01-12) (in englisch)
     %b  - Kurzname Monat (in englisch)
     %B - Langname Monat (in englisch)
     %y  - Jahr 2-stellig (00-99)
     %Y - Jahr 4-stellig
     %X - Uhrzeit
     %H - Stunden 24-h Format (00-23)
     %I   - Stunden 12-h Format (01-12)
     %M - Minuten (00-59)
     %p  - AM or PM
     %S  - Sekunden (00-59)
TestSQL
SELECT '10 February 2004, 08:23:00' AS ISCORRECT, F_DATETOSTR('10.02.04 08:23', '%d %B %Y, %X') FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_DATETOSTR(NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_DATETOSTRLANG Funktion von adhoc
Entrypoint datetostrlang nicht UTF-8 kompatibel - benutze U_DATE2STRLANG
Input TIMESTAMP
CSTRING(254)
CSTRING(2)
Datum-Zeitwert
Pattern, wie Datum-Zeit aussehen soll
Sprachkennzeichen für die Ausgabe
Output CSTRING(254) formatiertes Datum entsprechend Parameter 2 in der gewählten Sprache
Sprachversion von F_DATETOSTR.
Sprachkennzeichen: uk = englisch, de = deutsch, fr = französich, it = italienisch, es = spanisch, pt = portugisisch,
nl = niederländisch, no = norwegisch Bokmål, se = schwedisch, dk = dänisch, fi = finnisch, hu = ungarisch, ie = irisch(es gälisch),
ee = estnisch, is = isländisch, al = albanisch, va = lateinisch, v1 = kirchlisches lateinisch, c1 = katalanisch, s1 = schottisch,
s2 = schottisches gälisch, w1 = walisich, b1 = bretonisch, b2 = baskisch, n1 = norwegisch Nynorsk, za = afrikaans,
fo = faörisch, lu = luxembourgisch, w2 = wallonisch
Pattern für Parameter 2 (wie von c-Funktion strftime): siehe 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 •
U_DATE2STRLANG Funktion von adhoc
Entrypoint u_date2strlang UTF-8 kompatibel
Input TIMESTAMP
CSTRING(254)
CSTRING(2)
Datum-Zeitwert
Pattern, wie Datum-Zeit aussehen soll
Sprachkennzeichen für die Ausgabe
Output CSTRING(254) formatiertes Datum entsprechend Parameter 2 in der gewählten Sprache
Vielseitig konfigurierbare Version von F_DATETOSTR
Pattern für Parameter 2 nach icu-Standard:
Symbol Bedeutung Beispiel
G Zeitalter Bezeichnung G AD
y Jahr yy
yyyy oder y
96
1996
Y Jahr Y 1997
u erweitertes Jahr ?? u 4601
Q Quartal Q oder QQ
QQQ
QQQQ
02
Q2
2. Quartal
q Quartal q oder qq
qqq
qqqq
02
Q2
1. Quartal
M Monat M oder MM
MMM
MMMM
MMMMM
09
Sept
September
S
L Monat L oder LL
LLL
LLLL
LLLLL
09
Sept
September
S
w ISO Kalenderwoche w oder ww 27
W Woche des Monats W 2
d Tag des Monats d
dd
2
02
D Tag des Jahres D 189
F Wochentag des Monats
2 (2. Mittwoch im Juli)
g Tag nach modifiziertem Julianischem Datumn g 2451334
E Wochentag E, EE, oder EEE
EEEE
EEEEE
Di.
Dienstag
D
e lokaler Wochentag
Bsp.: wenn Montag 1. Tag, ist Dienstag 2. Tag)
e oder ee
eee
eeee
eeeee
2
Di.
Dienstag
D
c lokaler Wochentag oder cc
ccc
cccc
ccccc
2
Di.
Dienstag
D
a am/pm Kennzeichen a pm
h Stunde mit am/pm (1~12) h
hh
7
07
H Stunde des Tages (0~23) H
HH
0
00
k Stunde des Tages (1~24) k
kk
24
24
K Stunde mit am/pm (0~11) K
KK
0
00
m Minute m
mm
4
04
s Sekunde s
ss
5
05
S Millisekunde
(gerundet auf die Anzahl der Buchstaben)
S
SS
SSS
SSSS
2
24
235
2350
A Millisekunden des Tages A 61201235
z Zeitzone z, zz, or zzz
zzzz
MESZ
Mitteleuropäische Sommerzeit
Z Zeitzone: RFC 822
Z, ZZ, or ZZZ
ZZZZ
+0200
MEZ +02:00
v Zeitzone v
vvvv
(Ungarn) ??
(Ungarn) ??
V Zeitzone: Differenz zu GMT V
VV
MEZ
GMT + 1:00
VVVV Zeitzone aktueller Standort VVVV (Ungarn) ??
W Woche des Monats
2
' ESC-Sequenz für Texteingaben ' (nothing)
' ' Zwei einfache Hochkomma ergeben ein Hochkomma ' ' '
Beispiele
Format Pattern Ergebnis (bei Sprache englisch)
yyyy.MM.dd G 'at' HH:mm:ss zzz 1996.07.10 AD at 15:08:56 PDT
EEE, MMM d, ''yy Wed, July 10, '96
h:mm a 12:08 PM
hh 'o''clock' a, zzzz 12 o'clock PM, Pacific Daylight Time
K:mm a, z 0:00 PM, PST
yyyyy.MMMM.dd GGG hh:mm aaa 01996.July.10 AD 12:08 PM
Sprachkennzeichen: jedes gültige 2-stellige Sprachkennzeichen analog den TopLevelDomains , z.B. de für deutsch
Tipp: am besten ausprobieren!
TestSQL
SELECT 'Tuesday, 10 February ' || F_SQM() || '04 at 2 o' || F_SQM() || 'clock and 23 minutes 17 seconds PM' AS ISCORRECT, U_DATE2STRLANG('10.02.04 14:23:17', 'EEEE, dd MMMM ' || F_DSQM() || 'yy ' || F_SQM() || 'at' || F_SQM() || ' K ' || F_SQM() || 'o' || F_DSQM() || 'clock and ' || F_SQM() || 'm' || F_SQM() || ' minutes ' || F_SQM() || 's' || F_SQM() || ' seconds ' || F_SQM() || 'a', 'en') FROM RDB$DATABASE;

SELECT 'mardi, 10 février 2004, 14:23:17' AS ISCORRECT, U_DATE2STRLANG('10.02.04 14:23:17', 'EEEE, dd MMMM yyyy, HH:mm:ss', 'fr') FROM RDB$DATABASE;

SELECT 'Dienstag, 10 Februar 2004, 14:23:17' AS ISCORRECT, U_DATE2STRLANG('10.02.04 14:23:17', 'EEEE, dd MMMM yyyy, HH:mm:ss', 'de') FROM RDB$DATABASE;

SELECT NULL AS ISCORRECT, U_DATE2STRLANG(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ENCODEDATE kompatibel zu GrUDF
Entrypoint encodedate UTF-8 kompatibel
F_ENCODEDATENULL Funktion von adhoc
Entrypoint encodedatenull UTF-8 kompatibel
Input INTEGER
INTEGER
INTEGER
Jahr
Monat
Tag
Output DATE Datumswert aus Jahr, Monat, Tag
F_ENCODEDATENULL kann NULL zurückgeben.
TestSQL
SELECT '20.02.2004' AS ISCORRECT, F_ENCODEDATE(2004, 2, 20) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ENCODEDATENULL(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_RENCODEDATE Input/Output-kompatibel zu rFunc (ENCODEDATE)
Entrypoint r_encodedate UTF-8 kompatibel
Input INTEGER
INTEGER
INTEGER
Tag
Monat
Jahr
Output DATE Datumswert aus Tag, Monat, Jahr
Input-Parameter Reihenfolge anders als bei 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 kompatibel zu GrUDF
Entrypoint encodetime UTF-8 kompatibel
F_ENCODETIMENULL Funktion von adhoc
Entrypoint encodetimenull UTF-8 kompatibel
Input INTEGER
INTEGER
INTEGER
Stunden
Minuten
Sekunden
Output TIME Zeitwert aus Stunden, Minuten, Sekunden
F_ENCODETIMENULL kann NULL zurückgeben.
TestSQL
SELECT '09:45:53' AS ISCORRECT, F_ENCODETIME(9, 45, 53) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_ENCODETIMENULL(NULL, NULL, NULL) FROM RDB$DATABASE;
nach oben • go top •
F_ENCODETIMESTAMP kompatibel zu GrUDF
Entrypoint encodetimestamp UTF-8 kompatibel
Input INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
Jahr
Monat
Tag
Stunden
Minuten
Sekunden
Output TIMESTAMP Datum-Zeit-Wert aus Jahr, Monat, Tag, Stunden, Minuten, Sekunden
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 Input/Output-kompatibel zu rFunc( ENCODEDATETIME)
Entrypoint r_encodedatetime UTF-8 kompatibel
Input INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
Tag
Monat
Jahr
Stunden
Minuten
Sekunden
Output TIMESTAMP Datumswert aus Tag, Monat, Jahr, Stunden, Minuten, Sekunden
Input-Parameter Reihenfolge anders als bei 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
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Input/Output-kompatibel zu rFunc (EXTRACTTIME)
Entrypoint stripdate UTF-8 kompatibel
Input TIMESTAMP Datum Uhrzeit
Output TIMESTAMP Datum Uhrzeit als 31.12.1899 (Datum 0) mit der gewählten Uhrzeit
Um nur die Uhrzeit zu erhalten verwenden Sie CAST(' 01.10.2005 15:00:00' AS TIME)
rFunc bedient sich des modifizierten Julianischen Kalenders (0 = 17.11.1858 00:00:00), so daß als Datumsteil statt 31.12.1899 17.11.1858 rauskommt.
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
kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Input/Output-kompatibel zu rFunc (EXTRACTDATE)
Entrypoint striptime UTF-8 kompatibel
Input TIMESTAMP Datum Uhrzeit
Output TIMESTAMP Datum Uhrzeit als Uhrzeit 00:00:00 vom gewählten Datum
Um nur das Datum zu erhalten verwenden Sie 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 •
 
Datum-/Zeit Funktionen: Vergleichen
F_MAXDATE kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Input/Output-kompatibel zu rFunc (MAXDATE)
Entrypoint maxdate UTF-8 kompatibel
Input TIMESTAMP
TIMESTAMP
Datum optional Uhrzeit 1
Datum optional Uhrzeit 2
Output TIMESTAMP das Größere der beiden eingegebenen Datum
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 kompatibel zu FreeUDFLib, FreeUDFLibC, FreeUDFLib AvERP
Input/Output-kompatibel zu rFunc (MINDATE)
Entrypoint mindate UTF-8 kompatibel
Input TIMESTAMP
TIMESTAMP
Datum optional Uhrzeit 1
Datum optional Uhrzeit 2
Output TIMESTAMP das Kleinere der beiden eingegebenen Datum
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 kompatibel zu FreeUDFLib AvERP, GrUDF
Entrypoint equaldate UTF-8 kompatibel
Input TIMESTAMP
TIMESTAMP
Datum optional Uhrzeit 1
Datum optional Uhrzeit 2
Output INTEGER 1 = Datum ist gleich, 0 = Datum ist ungleich
Zeit kann mit eingegeben werden, berücksichtigt dabei aber nur das Datum.
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 kompatibel zu FreeUDFLib AvERP, GrUDF
Input/Output-kompatibel zu rFunc (DTEQUAL)
Entrypoint equaldatetime UTF-8 kompatibel
Input TIMESTAMP
TIMESTAMP
Datum optional Uhrzeit 1
Datum optional Uhrzeit 2
Output INTEGER 1 = Datum ist gleich, 0 = Datum ist ungleich
Berücksichtigt dabei Datum und Uhrzeit.
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 •
 
Datum-/Zeit Funktionen: Umwandeln
F_STRTOTIME kompatibel zu FreeUDFLibC
Entrypoint strtotime UTF-8 kompatibel
Input CSTRING(11) anglophile Uhrzeit (z.B. 05:04:01 AM) als String
Output TIME 24-Stunden-Uhrzeit
Eingabeformat kann jeweils 1- oder 2-stellig sein und die Trennung von AM/PM mit oder ohne Leerzeichen erfolgen, AM/PM muß in Großbuchstaben eingegeben werden.
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 Input/Output-kompatibel zu rFunc (DATETODOUBLE)
Entrypoint datetodouble UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output DOUBLE Datum/Zeit als Flieskommazahl (vor dem Komma Datum, nach dem Komma Zeit)
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 Input/Output-kompatibel zu rFunc (TIMETODOUBLE)
Entrypoint timetodouble UTF-8 kompatibel
Input TIMESTAMP Datum optional Uhrzeit
Output DOUBLE Datum/Zeit als Flieskommazahl (vor dem Komma 0, nach dem Komma Zeit)
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 Input/Output-kompatibel zu rFunc (DOUBLETODATE)
Entrypoint doubletodate UTF-8 kompatibel
Input DOUBLE Datum/Zeit als Flieskommazahl (vor dem Komma Datum, nach dem Komma Zeit)
Output TIMESTAMP Datum/Uhrzeit
rFunc bedient sich des modifizierten Julianischen Kalenders (0 = 17.11.1858 00:00:00) so daß als Datumsteil bei 0 statt 31.12.1899 17.11.1858 rauskommt.
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 Input/Output-kompatibel zu rFunc (DOUBLETOTIME)
Entrypoint doubletotime UTF-8 kompatibel
Input DOUBLE Datum/Zeit als Flieskommazahl (vor dem Komma Datum, nach dem Komma Zeit)
Output TIMESTAMP Datum/Uhrzeit
Berücksichtigt nur die Nachkommastellen vom Input.
rFunc bedient sich des modifizierten Julianischen Kalenders (0 = 17.11.1858 00:00:00) so daß als Datumsteil statt 31.12.1899 17.11.1858 rauskommt.
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 Funktion von adhoc
Entrypoint period2seconds UTF-8 kompatibel
Input CSTRING(254) Zeit-Dauer im Format d:h:m:s
Output INTEGER Anzahl Sekunden der Zeitperiode
Die Zeitdauer kann mit 2- oder 1-stelligen Bereichen (dd:hh:mm:ss oder d:h:m:s) eingegeben werden.
Negative Zeitdauer wird mit einem "-" vor dem 1. Bereich eingegeben.
Es sind Zeitdauern im Format Tag:Stunde:Minute:Sekunde (4 Bereiche) und Stunde:Minute:Sekunde (3 Bereiche) erlaubt.
Enthält der Input weniger als 3 Bereiche oder kommen andere Zeichen vor, ist das Ergnis <null> bzw. Leerstring.
Erlaubt als Input ist auch z.B. '0:26:0:0' statt '1:2:0:0' für 26 Stunden.  
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 Funktion von adhoc
Entrypoint seconds2period UTF-8 kompatibel
Input INTEGER Anzahl Sekunden einer Zeitperiode
Output CSTRING(254) Zeit-Dauer im Format d:h:m:s
Das Ergebnis ist immer im Format Tag:Stunde:Minute:Sekunde (4 mal 2-stellige Bereiche) dd:hh:mm:ss.
Negative Zeitdauern weren mit einem "-"vor dem 1. Bereich dargestellt.
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$DATA SELECT NULL AS ISCORRECT, F_SECONDS2PERIOD(NULL) FROM RDB$DATABASE;
nach oben • go top •
 
Datum-/Zeit Funktionen: Bewegliche Feiertage
F_WEIBERFASTNACHT Funktion von adhoc
Entrypoint weiberfastnacht UTF-8 kompatibel
Input INTEGER Jahr, für welches die Weiberfastnacht berechnet werden soll
Output DATE Datum Weiberfastnacht des gewählten Jahres
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 Funktion von adhoc
Entrypoint rosenmontag UTF-8 kompatibel
Input INTEGER Jahr, für welches der Rosenmontag berechnet werden soll
Output DATE Datum des Rosenmontag des gewählten Jahres
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 Funktion von adhoc
Entrypoint karnevalsdienstag UTF-8 kompatibel
Input INTEGER Jahr, für welches der Karnevalsdienstag berechnet werden soll
Output DATE Datum des Karnevalsdienstag des gewählten Jahres
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 Funktion von adhoc
Entrypoint aschermittwoch UTF-8 kompatibel
Input INTEGER Jahr, für welches der Aschermittwoch berechnet werden soll
Output DATE Datum des Aschermittwoch des gewählten Jahres
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 Funktion von adhoc
Entrypoint palmsonntag UTF-8 kompatibel
Input INTEGER Jahr, für welches der Palmrsonntag berechnet werden soll
Output DATE Datum des Palmrsonntag des gewählten Jahres
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 Funktion von adhoc
Entrypoint gruendonnerstag UTF-8 kompatibel
Input INTEGER Jahr, für welches der Gründonnerstag berechnet werden soll
Output DATE Datum des Gründonnerstag des gewählten Jahres
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 Funktion von adhoc
Entrypoint karfreitag UTF-8 kompatibel
Input INTEGER Jahr, für welches der Karfreitag berechnet werden soll
Output DATE Datum des Karfreitag des gewählten Jahres
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 Funktion von adhoc
Entrypoint ostersamstag UTF-8 kompatibel
Input INTEGER Jahr, für welches der Ostersamstag berechnet werden soll
Output DATE Datum des Ostersamstag des gewählten Jahres
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 kompatibel zu FreeUDFLib AvERP, GrUDF
Entrypoint osterdatum UTF-8 kompatibel
Input INTEGER Jahr, für welches der Ostersonntag berechnet werden soll
Output DATE Datum des Ostersonntag des gewählten Jahres
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 Funktion von adhoc
Entrypoint ostermontag UTF-8 kompatibel
Input INTEGER Jahr, für welches der Ostermontag berechnet werden soll
Output DATE Datum des Ostersonntags des gewählten Jahres
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 Funktion von adhoc
Entrypoint himmelfahrt UTF-8 kompatibel
Input INTEGER Jahr, für welches Himmelfahrt berechnet werden soll
Output DATE Datum Himmelfahrt des gewählten Jahres
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 Funktion von adhoc
Entrypoint pfingstsonntag UTF-8 kompatibel
Input INTEGER Jahr, für welches der Pfingstsonntag berechnet werden soll
Output DATE Datum des Pfingstsonntag des gewählten Jahres
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 Funktion von adhoc
Entrypoint pfingstmontag UTF-8 kompatibel
Input INTEGER Jahr, für welches der Pfingstmontag berechnet werden soll
Output DATE Datum des Pfingstmontag des gewählten Jahres
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 Funktion von adhoc
Entrypoint fronleichnam UTF-8 kompatibel
Input INTEGER Jahr, für welches Fronleichnam berechnet werden soll
Output DATE Datum des Fronleichnam des gewählten Jahres
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