Makro-Funktionen für Datums- und Uhrzeitwerte (FireDAC)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Vorverarbeiten von Anweisungstext (FireDAC)



Die folgende Tabelle enthält die Makro-Funktionen für Datums- und Uhrzeitwerte:

Funktion Beschreibung Lokale Ausdrucks-Engine
CURRENT_DATE( ) Gibt das aktuelle Datum zurück. +
CURRENT_TIME[(Zeitgenauigkeit)] Gibt die aktuelle lokale Uhrzeit zurück. Das Argument Zeitgenauigkeit bestimmt die Sekundengenauigkeit des zurückgegebenen Wertes. +
CURRENT_TIMESTAMP [(Zeitstempelgenauigkeit)] Gibt das aktuelle lokale Datum und die lokale Uhrzeit als Zeitstempelwert zurück. Das Argument Zeitstempelgenauigkeit bestimmt die Sekundengenauigkeit des zurückgegebenen Zeitstempels. +
CURDATE( ) Gibt das aktuelle Datum zurück. +
CURTIME( ) Gibt die aktuelle lokale Uhrzeit zurück. +
DAYNAME(Datumsausdr) Gibt einen Zeichen-String zurück, der den datenquellenspezifischen Namen des Tages (z. B. Sunday bis Saturday oder Sun. bis Sat. für eine Datenquelle, die Englisch verwendet, oder Sonntag bis Samstag für eine Datenquelle, die Deutsch verwendet) für den Tagesanteil von Datumsausdr zurück. +
DAYOFMONTH(Datumsausdr) Gibt den Tag des Monats auf Basis des Monatsfeldes in Datumsausdr als Integerwert im Bereich von 1 – 31 zurück. +
DAYOFWEEK(Datumsausdr) Gibt den Tag der Woche auf Basis des Wochenfeldes in Datumsausdr als Integerwert im Bereich von 1 – 7 zurück, wobei 1 für Sonntag steht. +
DAYOFYEAR(Datumsausdr) Gibt den Tag des Jahres auf Basis des Jahresfeldes in Datumsausdr als Integerwert im Bereich von 1 – 366 zurück. +
EXTRACT(Extrakt-Feld, Extrakt-Quelle) Gibt den Extrakt-Feld-Anteil aus Extrakt-Quelle zurück. Das Argument Extrakt-Quelle ist ein Datums/Zeit- oder Intervallausdruck. Das Argument Extrakt-Feld kann eines der folgenden Schlüsselwörter sein:
  • YEAR
  • MONTH
  • DAY
  • HOUR
  • MINUTE
  • SECOND

Die Genauigkeit des zurückgegebenen Wertes wird durch die Implementierung festgelegt. Die Skalierung ist 0, außer wenn SECOND angegeben ist. In diesem Fall ist die Skalierung nicht kleiner als die minimale Sekundengenauigkeit des "Extrakt-Quelle"-Feldes.

+
HOUR(Zeitausdr) Gibt die Stunde auf Basis des Stundenfeldes in Zeitausdr als Integerwert im Bereich von 0 – 23 zurück. +
MINUTE(Zeitausdr) Gibt die Minute auf Basis des Minutenfeldes in Zeitausdr als Integerwert im Bereich von 0 – 59 zurück. +
MONTH(Datumsausdr) Gibt den Monat auf Basis des Monatsfeldes in Datumsausdr als Integerwert im Bereich von 1 – 12 zurück. +
MONTHNAME(Datumsausdr) Gibt einen Zeichen-String zurück, der den datenquellenspezifischen Namen des Monats (z. B. January bis December oder Jan. bis Dec. für eine Datenquelle, die Englisch verwendet, oder Januar bis Dezember für eine Datenquelle, die Deutsch verwendet) für den Monatsanteil von Datumsausdr zurück. +
NOW( ) Gibt das aktuelle Datum und die aktuelle Uhrzeit als Zeitstempelwert zurück. +
QUARTER(Datumsausdr) Gibt das Quartal in Datumsausdr als Integerwert im Bereich von 1 – 4 zurück, wobei 1 für das Quartal vom 1. Januar bis zum 31. März steht. +
SECOND(Zeitausdr) Gibt die Sekunde auf Basis des Sekundenfeldes in Zeitausdr als Integerwert im Bereich von 0 – 59 zurück. +
TIMESTAMPADD(Intervall, Integer-Ausdr, Zeitstempel-Ausdr) Gibt den Zeitstempel zurück, der durch Addieren von Integer-Ausdr Intervallen vom Typ Intervall mit Zeitstempel-Ausdr berechnet wird. Gültige Werte von Intervall sind die folgenden Schlüsselwörter:
  • FRAC_SECOND (*)
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

FRAC_SECOND (Sekundenbruchteil) wird als Milliardstel einer Sekunde ausgedrückt. Die folgende SQL-Anweisung gibt beispielsweise den Namen aller Mitarbeiter zurück und das Datum ihrer einjährigen Betriebszugehörigkeit: SELECT NAME, {fn TIMESTAMPADD(‘YEAR’, 1, HIRE_DATE)} FROM EMPLOYEES. Wenn Zeitstempel-Ausdr ein Zeitwert ist und Intervall Tage, Wochen, Monate, Quartale oder Jahre angibt, wird der Datumsanteil von Zeitstempel-Ausdr auf das aktuelle Datum gesetzt, bevor der Ergebnis-Zeitstempel berechnet wird. Wenn Zeitstempel-Ausdr ein Datumswert ist und Intervall Sekundenbruchteile, Sekunden, Minuten oder Stunden angibt, wird der Zeitanteil von Zeitstempel-Ausdr auf 0 gesetzt, bevor der Ergebnis-Zeitstempel berechnet wird.

+
TIMESTAMPDIFF(Intervall, Zeitstempel-Ausdr1, Zeitstempel-Ausdr2) Gibt die ganzzahlige Anzahl der Intervalle vom Typ Intervall zurück, um die Zeitstempel-Ausdr2 größer als Zeitstempel-Ausdr1 ist. Gültige Werte von Intervall sind die folgenden Schlüsselwörter:
  • FRAC_SECOND (*)
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

FRAC_SECOND (Sekundenbruchteil) wird als Milliardstel einer Sekunde ausgedrückt. Die folgende SQL-Anweisung gibt beispielsweise den Namen aller Mitarbeiter zurück und die Anzahl der Jahre ihrer Betriebszugehörigkeit: SELECT NAME, {fn TIMESTAMPDIFF(‘YEAR’, {fn CURDATE()}, HIRE_DATE)} FROM EMPLOYEES. Wenn der Zeitstempelausdruck ein Zeitwert ist und Intervall Tage, Wochen, Monate, Quartale oder Jahre angibt, wird der Datumsanteil dieses Zeitstempels auf das aktuelle Datum gesetzt, bevor die Differenz zwischen den beiden Zeitstempeln berechnet wird. Wenn einer der beiden Zeitstempelausdrücke ein Datumswert ist und Intervall Sekundenbruchteile, Sekunden, Minuten oder Stunden angibt, wird der Zeitanteil dieses Zeitstempels auf 0 gesetzt, bevor die Differenz zwischen den beiden Zeitstempeln berechnet wird.

+
WEEK(Datumsausdr) Gibt die Woche des Jahres auf Basis des Wochenfeldes in Datumsausdr als Integerwert im Bereich von 1 – 53 zurück. +
YEAR(Datumsausdr) Gibt das Jahr auf Basis des Jahresfeldes in Datumsausdr als Integerwert zurück. Der Bereich ist von der Datenquelle abhängig. +

(*) Einige DBMSs können nicht mit FRAC_SECOND arbeiten.