HSQL-Funktionen FAQ-Base

From The Document Foundation Wiki
< Faq‎ | Base‎ | HSQLFunctions
Jump to: navigation, search

Welche Funktionen sind mit den eingebauten Datenbanken verfügbar?

Base arbeitet intern mit zwei verschiedenen Datenbanken. Die HSQLDB in der Version 1.8.0 ist seit der ersten Version von LO dabei. Firebird ist in der Version 3.0 mit der Version LO 5.3 als experimentelle Datenbank verfügbar. Die folgende Liste führt die Funktionen beider Datenbanken auf und ergänzt jedes Mal, ob die Funktion in der HSQLDB oder in Firebird zur Verfügung steht.

HSQLDB: Die Funktion steht in dieser Datenbank nicht zur Verfügung.

HSQLDB: Die Funktion steht in dieser Datenbank zur Verfügung.

Wenn eine Funktion zur Verfügung steht, so kann dies bei Firebird allerdings auch bedeuten, dass sie noch nicht korrekt funktioniert. Hier sollte das Handbuch der jeweils aktuellen Base-Version zu Rate gezogen werden.

Manche Funktionen sind nur verfügbar, wenn im Abfrageeditor auf die SQL-Ansicht umgeschaltet und SQL-Kommando direkt ausführen gewählt wird. Dies ist gekennzeichnet durch GUI. Entsprechend sind die Funktionen, die auch in der GUI funktionieren, mit GUI gekennzeichnet.

Die grafische Oberfläche für die Erstellung von Abfragen stellt lediglich Funktionen zur Verfügung, die als Aggregatfunktionen bezeichnet werden. Sie funktionieren so, dass sie nicht nur ein Datenfeld oder einen Datensatz berücksichtigen, sondern über alle Datensätze hinweg ihre Berechnungen durchführen. Die Aggregatfunktionen können nicht neben anderen Feldern aufgerufen werden. Alle Felder müssen entweder mit einer anderen Aggregatfunktion oder mit dem Zusatz GROUP BY in die Abfrage aufgenommen werden.

Aggregatfunktionen

COUNT("Name")

HSQLDB Firebird

COUNT(DISTINCT "Name") Firebird

Zählt alle Felder, die einen Namen enthalten. Mit dem Zusatz Distinct zählt Firebird alle unterschiedlichen Namen.
MIN("Name")

HSQLDB Firebird

Zeigt den ersten Namen im Alphabet. Das Ergebnis dieser Funktion ist so formatiert, wie es dem Feldinhalt entspricht. Text wird im Ergebnis Text, Ganzzahl zu Ganzzahl, Dezimalzahl zu Dezimalzahl usw.
MAX("Name")

HSQLDB Firebird

zeigt entsprechend den letzten Namen im Alphabet.
SUM("Zahl")

HSQLDB Firebird

Kann nur Werte aus Zahlenfeldern addieren. Die Funktion versagt bei Datumsfeldern.

Tipp:

Auch bei Zeitfeldern versagt die Funktion. Hier kann folgendes hilfreich sein:

SELECT (SUM( HOUR("Zeit") )*3600 + SUM( MINUTE("Zeit") ))*60 + SUM( SECOND("Zeit") ) AS "Sekunden" FROM "Tabelle"

Die Summe wird von den Stunden, Minuten und gegebenenfalls Sekunden gebildet. Anschließend wird so erweitert, dass alles zusammen in einer Maßeinheit, hier in Sekunden, wiedergegeben wird. Es werden also weiter nur Zahlen mit der Summenformel addiert. Mit

SELECT ((SUM( HOUR("Zeit") )*3600 + SUM( MINUTE("Zeit") ))*60 + SUM( SECOND("Zeit") )) / 3600.0000 AS "Stunden" FROM "Tabelle"

wird aus der Addition wieder eine Zeit in Stunden mit den Minuten und Sekunden als Nachkommastellen. Daraus kann dann über entsprechende Formatierung auch wieder eine Zeitdarstellung in einer Abfrage oder einem Formular erreicht werden.

Firebird: Stunde, Minute und Sekunde müssen über die Funktion EXTRACT() ermittelt werden. Allerdings kennt Firebird die Funktion DATEADD, so dass sich hier eine Möglichkeit ergibt, direkt über die Summe von Zeiten wieder eine Zeit zu erhalten:

SELECT DATEADD( SUM( DATEDIFF( SECOND FROM TIME '00:00' TO "Zeit")) SECOND TO TIME '00:00') FROM "Tabelle"

Die Zeitdifferenz zur Zeit 00:00 wird mittels DATEDIFF in Sekunden berechnet. Die Sekunden werden mit SUM addiert. Zu der Zeit 00:00 wird jetzt mittels DATEADD die Anzahl der Sekunden addiert und wieder als Zeit formatiert.

AVG("Zahl")

HSQLDB Firebird

AVG(DISTINCT "Zahl") Firebird

Zeigt den Mittelwert der Inhalte einer Spalte. Auch diese Funktion beschränkt sich auf Zahlenfelder. Hier sollte darauf geachtet werden, dass bei Ganzzahlen auch nur ein Ergebnis in Ganzzahlen ermittelt wird. AVG("Ganzzahl" * 1.00) zeigt dann einen Mittelwert mit maximal 2 Nachkommastellen. Mit dem Zusatz Distinct erstellt Firebird den Durchschnitter aller Zahlen.
SOME("Ja_Nein")

HSQLDB Firebird

Zeigt bei Ja/Nein Feldern (boolschen Feldern) die Version an, die nur einige Felder erfüllen. Über eine gesamte Tabelle abgefragt wird bei SOME also immer «Ja» erscheinen, wenn mindestens 1 Datensatz mit «Ja» angekreuzt ist.
EVERY("Ja_Nein")

HSQLDB Firebird

Wird so lange «Nein» ergeben, bis alle Datensätze mit «Ja» angekreuzt sind.
VAR_POP

HSQLDB Firebird

(SUM(expr2) – SUM(expr)2 / COUNT(expr)) / COUNT(expr). Dies gibt die Populationsabweichung eines Satzes von Zahlen zurück, nachdem die Nullwerte in diesem Satz verworfen wurden.
VAR_SAMP

HSQLDB Firebird

(SUM(expr2) – SUM(expr)2 / COUNT(expr)) / (COUNT(expr) – 1). Dies gibt die Stichprobenabweichung eines Satzes von Zahlen zurück, nachdem die Nullwerte in diesem Satz verworfen wurden.
STDDEV_POP

HSQLDB Firebird

SQRT(VAR_POP). Berechnet die Populationsstandardabweichung und gibt die Quadratwurzel der Populationsabweichung zurück.
STDDEV_SAMP

HSQLDB Firebird

SQRT(VAR_SAMP). Berechnet die kumulative Stichproben-Standardabweichung und gibt die Quadratwurzel der Probenvarianz zurück.

Numerische Funktionen

ABS(d)

HSQLDB Firebird

Gibt des absoluten Wert einer Zahl wieder, entfernt also ggf. das Minus-Vorzeichen.

GUI

ACOS(d)

HSQLDB Firebird

Gibt den Arcuscosinus wieder. Bereich: [-1, 1].

GUI

ASIN(d)

HSQLDB Firebird

Gibt den Arcussinus wieder. Bereich: [-1, 1].

GUI

ATAN(d)

HSQLDB Firebird

Gibt den Arcustangens wieder.

GUI

ATAN2(a,b)

HSQLDB Firebird

Gibt den Arcustangens über Koordinaten wieder. 'a' ist der Wert der x-Achse, 'b' der Wert der y-Achse

GUI

BITAND(a,b) HSQLDB

BIN_AND(a,b) Firebird

Sowohl die binäre Schreibweise von 'a' als auch die binäre Schreibweise von 'b' müssen an der gleichen Stelle eine '1' stehen haben, damit die '1' in das Ergebnis übernommen wird.

BITAND(3,5) ergibt 1; 0011 AND 0101 = 0001

GUI

BITOR(a,b) HSQLDB

BIN_OR(a,b) Firebird

Entweder die binäre Schreibweise von 'a' oder die binäre Schreibweise von 'b' müssen an der gleichen Stelle eine '1' stehen haben, damit die '1' in das Ergebnis übernommen wird.

BITOR(3,5) ergibt 7; 0011 OR 0101 = 0111

GUI

BIN_SHL(a,b)

HSQLDB Firebird

a*2b
BIN_SHR(a,b)

HSQLDB Firebird

a/2b
BITXOR(a,b) HSQLDB

BIN_XOR(a,b) Firebird

Entweder die binäre Schreibweise von 'a' oder die binäre Schreibweise von 'b', nicht aber beide, müssen an der gleichen Stelle eine '1' stehen haben, damit die '1' in das Ergebnis übernommen wird.

BITXOR(3,5) ergibt 6; 0011 XOR 0101 = 0110

GUI

CEIL(d) HSQLDB Firebird

CEILING(d) HSQLDB Firebird

Gibt die kleinste Ganzzahl an, die nicht kleiner als d ist.

GUI

COS(d)

HSQLDB Firebird

Gibt den Cosinus wieder.

GUI

COSH(d)

HSQLDB Firebird

Gibt den Cosinus-Hyperbolicus wieder.

GUI

COT(d)

HSQLDB Firebird

Gibt den Cotangens wieder.

GUI

DEGREES(d)

HSQLDB Firebird

Gibt zu Bogenmaßen die Gradzahl wieder.

GUI

EXP(d)

HSQLDB Firebird

Gibt ed ( e: (2.718...) ) wieder.

GUI

FLOOR(d)

HSQLDB Firebird

Gibt die größte Ganzzahl an, die nicht größer als d ist.

GUI

LOG(d) HSQLDB Firebird

LN(d) HSQLDB Firebird

Gibt den natürlichen Logarithmus zur Basis 'e' wieder.

GUI

LOG(x,y)

HSQLDB Firebird

Gibt den Logarithmus zur Basis x wieder.

LOG(2,8) ergibt 3, weil 23 = 8

GUI

LOG10(d)

HSQLDB Firebird

Gibt den Logarithmus zur Basis 10 wieder.

GUI

MOD(a,b)

HSQLDB Firebird

Gibt den Rest als Ganzzahl wieder, der bei der Division von 2 Ganzzahlen entsteht.

MOD(11,3) ergibt 2, weil 3*3+2=11

GUI

PI()

HSQLDB Firebird

Gibt π (3.1415...) wieder.

GUI

POWER(a,b)

HSQLDB Firebird

POWER(2,3) = 8, weil 23 = 8

GUI

RADIANS(d)

HSQLDB Firebird

Gibt zu den Gradzahlen das Bogenmaß wieder.

GUI

RAND()

HSQLDB Firebird

Gibt eine Zufallszahl x größer oder gleich 0.0 und kleiner als 1.0 wieder.

GUI

ROUND(a,b)

HSQLDB Firebird

Rundet a auf b Stellen nach dem Dezimalzeichen.

GUI

ROUNDMAGIC(d)

HSQLDB Firebird

Löst Rundungsprobleme, die durch Fließkommazahlen entstehen. 3.11-3.1-0.01 ist eventuell nicht genau 0, wird aber als 0 in der GUI angezeigt. ROUNDMAGIC macht daraus einen tatsächlichen 0-Wert.

GUI

SIGN(d)

HSQLDB Firebird

Gibt -1 wieder, wenn 'd' kleiner als 0 ist, 0 wenn 'd'==0 und 1 wenn 'd' größer als 0 ist.

GUI

SIN(A)

HSQLDB Firebird

Gibt den Sinus eines Bogenmaßes wieder.

GUI

SINH(d)

HSQLDB Firebird

Gibt den Sinus-Hyperbolicus wieder.

GUI

SQRT(d)

HSQLDB Firebird

Gibt die Quadratwurzel wieder.

GUI

TAN(A)

HSQLDB Firebird

Gibt den Tangens eines Bogenmaßes wieder.

GUI

TANH(d)

HSQLDB Firebird

Gibt den Tangens-Hyperbolicus wieder.

GUI

TRUNCATE(a,b) HSQLDB Firebird

TRUNC(a,b) HSQLDB Firebird

Schneidet 'a' auf 'b' Zeichen nach dem Dezimalpunkt ab.

TRUNCATE(2.37456,2) = 2.37

GUI

Textfunktionen

ASCII(s) HSQLDB

ASCII_VAL(s) Firebird

Gibt den ASCII-Code des ersten Buchstaben des Strings wieder.

GUI

BIT_LENGTH(s)

HSQLDB Firebird

Gibt die Länge des Textes s in Bits wieder.

HSQLDB: Jedes Zeichen wird als 16bit ausgegeben. Firebird: Normale Zeichen 8bit, Sonderzeichen 16bit.

GUI

CHAR(c) HSQLDB

ASCII_CHAR(c) Firebird

Gibt den Buchstaben wieder, der zu dem ASCII-Code c gehört. Dabei geht es nicht nur um Buchstaben, sondern auch um Steuerzeichen.

CHAR(13) erzeugt in einer Abfrage einen Zeilenumbruch, der in mehrzeiligen Feldern eines Formulars oder in Berichten sichtbar wird.

GUI

CHAR_LENGTH(s)

CHARACTER_LENGTH() HSQLDB Firebird

Gibt die Länge des Textes in Buchstaben wieder.

GUI

CHAR_TO_UUID (ascii_uuid)

HSQLDB Firebird(Bug)

Ein String mit 36 Zeichen und einem '-' an Position 9, 14, 19 und 24 und ansonsten gültigen Hexadezimalzeichen wird in einen String ohne '-' und in Großschreibung geändert.

CHAR_TO_UUID('A0bF4E45-3029-2a44-D493-4998c9b439A3') soll ergeben: A0BF4E4530292A44D4934998C9B439A3

GUI

CONCAT(str1,str2)

HSQLDB Firebird

Verbindet str1 + str2

GUI

'str1'||'str2'||'str3'

HSQLDB Firebird

Verbindet str1 + str2 + str3, einfachere Alternative zu CONCAT

GUI

'str1'+'str2'+'str3'

HSQLDB Firebird

Verbindet str1 + str2 + str3, einfachere Alternative zu CONCAT

GUI

DIFFERENCE(s1,s2)

HSQLDB Firebird

Gibt den ?Klang?unterschied zwischen s1 und s2 wieder. Hier wird lediglich eine Ganzzahl ausgegeben. 0 bedeutet dabei gleichen Klang. So erscheint 'for' und 'four' mit 0 gleich, 'Kürzen' und 'Würzen' wird auf 1 gesetzt, 'Mund' und 'Mond' wieder auf 0

GUI

GEN_UUID

HSQLDB Firebird(Bug)

Soll einen einzigartigen String mit 16 Byte Länge erstellen.

GUI

HASH(s)

HSQLDB Firebird

Erstellt einen Hash (Streuwert) für einen eingegebenen Text. Das Ergebnis ist eine BIGINT-Zahl.

GUI

HEXTORAW(s)

HSQLDB Firebird

Übersetzt Hexadezimalcode in andere Zeichen. Der Hexadezimalcode muss dabei aus einer durch 4 teilbaren Anzahl an Zeichen bestehen.

HEXTORAW('0041') = 'A' (siehe auch den Hexadezimalcode über Einfügen → Sonderzeichen im Writer)

GUI

INSERT(s1,start,len,s2) HSQLDB Firebird

OVERLAY(s1 PLACING s2 FROM start [FOR len]) HSQLDB Firebird

Gibt einen Text wieder, bei dem Teile ersetzt werden. Beginnend mit «start» wird über eine Länge «len» aus dem Text s1 Text ausgeschnitten und durch den Text s2 ersetzt.

INSERT( 'Bundesbahn', 3, 4, 'mmel') macht aus 'Bundesbahn' 'Bummelbahn', wobei die Länge des eingefügten Textes auch ohne weiteres größer als die des ausgeschnittenen Textes sein darf. So ergibt INSERT( 'Bundesbahn', 3, 5, 's und B') oder OVERLAY( 'Bundesbahn' PLACING 's und B' FROM 3 FOR 5) 'Bus und Bahn'.

GUI (Hsqldb) GUI (Firebird)

LCASE(s)

HSQLDB Firebird

Wandelt den String in Kleinbuchstaben um.

GUI

LEFT(s,count)

HSQLDB Firebird

Gibt die mit count angegebene Zeichenanzahl vom Beginn des Textes s wieder.

GUI

LENGTH(s)

HSQLDB Firebird

Gibt die Länge eines Textes in Anzahl der Buchstaben wieder.

GUI

LIST ([ALL | DISTINCT] expression [, separator])

HSQLDB Firebird

Fasst alle Einträge zu einem Feldinhalt zusammen, die in einem Feld (in Abhängigkeit von der Gruppierung anderer Felder) stehen.

SELECT "Nachname", CAST( LIST( "Vorname", ', ' ) AS VARCHAR ( 32000 ) ) AS "Vornamen" FROM "Tabelle" GROUP BY "Nachname" Die Umformung in den VARCHAR-Dateityp ist bei Einführung von LO 5.3 noch notwendig.

GUI

LOCATE(search,s[,start])

HSQLDB Firebird

Gibt den ersten Treffer für den Begriff aus search in dem Text s wieder. Der Treffer wird numerisch angegeben: (1=left, 0=not found)

Die Angabe eines Startes innerhalb des Textes ist optional.

GUI

LOWER(s)

HSQLDB Firebird

Wie LCASE(s)

GUI

LPAD(s,len[,pad])

HSQLDB Firebird

Der String s wird mit den in pad angegebenen Zeichen bis zur Länge len von links an aufgefüllt. Ist pad nicht angegeben, so wird ein Leerzeichen genutzt. Ist s länger als len, so wird s auf len von rechts aus gekürzt.

GUI

LTRIM(s)

HSQLDB Firebird

Entfernt führende Leerzeichen und nicht druckbare Zeichen von einem Text.

GUI

OCTET_LENGTH(s) Gibt die Länge eines Textes in Bytes an.

Dies entspricht dem doppelten Wert der Zeichenanzahl. HSQLDB

Dies entspricht dem UTF8-Wert der Zeichenanzahl. Sonderzeichen haben eine Länge von 2. Firebird

GUI

POSITION(s1 IN s2) HSQLDB Firebird

POSITION(s1, s2[, start]) HSQLDB Firebird

Wenn der erste Text in dem zweiten enthalten ist wird die Position des ersten Textes wiedergeben, ansonsten 0. Bei der 2. Version kann auch der Startpunkt der Suche festgelegt werden.

Dies könnte statt einer Suchmöglichkeit mit «LIKE» besonders bei umfangreichen Texten genutzt werden.

GUI

RAWTOHEX(s)

HSQLDB Firebird

Verwandelt in die Hexadezimalschreibweise, Umkehr von HEXTORAW()

GUI

REPEAT(s,count)

HSQLDB Firebird

Wiederholt den Text s count Mal

GUI

REPLACE(s1,replace,s2)

HSQLDB Firebird

Ersetzt alle vorkommenden Textstücke mit dem Inhalt replace im Text s1 durch den Text s2

GUI

REVERSE(s)

HSQLDB Firebird

Schreibt den String verkehrt herum.

GUI

RIGHT(s,count)

HSQLDB Firebird

Umgekehrt zu LEFT; gibt die mit count angegebene Zeichenzahl vom Textende aus wieder.

GUI

RPAD(s,len[,pad])

HSQLDB Firebird

Der String s wird mit den in pad angegebenen Zeichen bis zur Länge len von rechts an aufgefüllt. Ist pad nicht angegeben, so wird ein Leerzeichen genutzt. Ist s länger als len, so wird s auf len von rechts aus gekürzt.

GUI

RTRIM(s)

HSQLDB Firebird

Entfernt alle Leerzeichen und nicht druckbaren Zeichen am Textende.

GUI

SOUNDEX(s)

HSQLDB Firebird

Gibt einen Code von 4 Zeichen wieder, die dem Klang von s entsprechen sollen – passt zu der Funktion DIFFERENCE()

GUI

SPACE(count)

HSQLDB Firebird

Gibt die in count angegebene Zahl an Leertasten wieder.

GUI

SUBSTR(s,start[,len])

HSQLDB Firebird

Kürzel für SUBSTRING

GUI

SUBSTRING(s,start[,len]) HSQLDB Firebird

SUBSTRING(s FROM start [ FOR len])

HSQLDB Firebird

Gibt den Text s ab der Startposition wieder. (1=links) . Wird die Länge ausgelassen, so wird der gesamte Text wiedergegeben. Auch bei einer größeren Länge als der Textlänge wird der restliche Text wiedergegeben.

GUI

Liefert den Teil eines Textes ab der in FROM angegebenen Startposition, optional in der in FOR angegebenen Länge. Steht im Feld "Name" z.B. 'Roberta', so ergibt SUBSTRING("Name" FROM 3 FOR 3) den Teilstring 'bert'.

GUI

TRIM([{LEADING | TRAILING | BOTH}] FROM s)

HSQLDB Firebird

Nicht druckbare Sonderzeichen und Leerzeichen werden entfernt.

GUI

UCASE(s)

HSQLDB Firebird

Wandelt den String in Großbuchstaben um.

GUI

UPPER(s)

HSQLDB Firebird

Wie UCASE(s)

GUI

UUID_TO_CHAR

HSQLDB Firebird

Macht aus einer 16-Byte UUID eine 36 Zeichen lange UUID-Kette mit Bindestrichen. Sonderzeichen haben eine Länge von 2 Byte, so dass dafür die Zeichenzahl gekürzt werden müsste.

UUID_TO_CHAR('LibreOffice Base') ergibt 4C696272-654F-6666-6963-652042617365

GUI

Datum- und Zeitfunktionen

CURDATE() HSQLDB Firebird Gibt das aktuelle Datum wieder.

GUI

CURRENT_DATE HSQLDB Firebird Synonym für CURDATE(), SQL-Standard

GUI

CURTIME() HSQLDB Firebird Gibt die aktuelle Zeit wieder.

GUI

CURRENT_TIME HSQLDB Firebird Synonym für CURTIME(), SQL-Standard

GUI

CURRENT_TIMESTAMP HSQLDB Firebird Synonym für NOW(), SQL-Standard

GUI

DATEADD(string, n, datetime)

DATEADD(n string TO datetime)

HSQLDB Firebird

Addiert zu einer Datums bzw. Datumszeitangabe eine entsprechende Zeit, die über die Ganzzahl n und den string festgelegt wird.

Der Eintrag in string entscheidet darüber, in welcher Einheit der Unterschied wiedergegeben wird: millisecond, second, minute, hour, day, week, month, year. Die string-Eingaben dürfen nicht mit einfachen Anführungszeichen maskiert sein.

GUI

Alternativ ist für Tagesangaben in Firebird möglich: "Datum" + "Zeit" Timestamp GUI

"Datum" + 1 Datum, Integerzahl wird als Tag gewertet GUI

"Datum" – 1 Datum, Integerzahl wird als Tag gewertet GUI

"Zeit" + 1 Zeit, Integerzahl wird als Sekunde gewertet GUI

"Zeit" – 1 Zeit, Integerzahl wird als Sekunde gewertet GUI

"Zeitstempel" + 2.75 Zeitstempel, Ganzzahl wird als Datum, Nachkommastellen als Bruchteil des Tages gewertet, hier also 2 Tage und 18 Stunden GUI

"Zeitstempel" – 2.75 Zeitstempel GUI

Nur als Differenz, nicht als Summe funktionieren: "Datum1" – "Datum2" Differenz in Tagen GUI

"Zeit1" – "Zeit2" Differenz in Sekunden GUI

"Zeitstempel1" – "Zeitstempel2" Differenz in Tagen und Bruchteilen von Tagen GUI

DATEDIFF(string, datetime1, datetime2)

HSQLDB Firebird DATEDIFF(string FROM datetime1 TO datetime2) HSQLDB Firebird

Datumsunterschied zwischen zwei Datums- bzw. Datumszeitangaben.

HSQLDB:

Der Eintrag in string entscheidet darüber, in welcher Einheit der Unterschied wiedergegeben wird: 'ms'='millisecond', 'ss'='second', 'mi'='minute', 'hh'='hour', 'dd'='day', 'mm'='month', 'yy' = 'year'. Sowohl die Langfassung als auch die Kurzfassung ist für den einzusetzenden string möglich.

GUI

Firebird:

Der Eintrag in string entscheidet darüber, in welcher Einheit der Unterschied wiedergegeben wird: millisecond, second, minute, hour, day, week, month, year. Die string-Eingaben dürfen nicht mit einfachen Anführungszeichen maskiert sein.

GUI

DAY(date)

HSQLDB Firebird

Gibt den Tag im Monat wieder. (1-31)

GUI

DAYNAME(date)

HSQLDB Firebird

Gibt den englischen Namen des Tages wieder.

GUI

DAYOFMONTH(date)

HSQLDB Firebird

Gibt den Tag im Monat wieder. (1-31), Synonym für DAY()

GUI

DAYOFWEEK(date)

HSQLDB Firebird

Gibt den Wochentag als Zahl wieder. (1 bedeutet Sonntag)

GUI

DAYOFYEAR(date)

HSQLDB Firebird

Gibt den Tag im Jahr wieder. (1-366)

GUI

HOUR(time)

HSQLDB Firebird

Gibt die Stunde wieder. (0-23)

GUI

MINUTE(time)

HSQLDB Firebird

Gibt die Minute wieder. (0-59)

GUI

MONTH(date)

HSQLDB Firebird

Gibt den Monat wieder. (1-12)

GUI

MONTHNAME(date)

HSQLDB Firebird

Gibt den englischen Namen des Monats wieder.

GUI

NOW()

HSQLDB Firebird

DATE 'NOW', TIME 'NOW', TIMESTAMP 'NOW' HSQLDB Firebird

Gibt das aktuelle Datum und die aktuelle Zeit zusammen als Zeitstempel wieder. Stattdessen kann auch CURRENT_TIMESTAMP genutzt werden.

GUI

Kurzform TIMESTAMP 'NOW' usw.: GUI

Langform CAST('NOW' AS TIMESTAMP) usw.: GUI

QUARTER(date)

HSQLDB Firebird

Gibt das Quartal im Jahr wieder. (1-4)

GUI

SECOND(time)

HSQLDB Firebird

Gibt die Sekunden einer Zeitangabe wieder. (0-59)

GUI

WEEK(date)

HSQLDB Firebird

Gibt die Woche des Jahres wieder. (1-53)

GUI

YEAR(date)

HSQLDB Firebird

Gibt das Jahr aus einer Datumseingabe wieder.

GUI

DATE 'TODAY'

HSQLDB Firebird

Gibt das aktuelle Datum an, Langform: CAST('TODAY' AS DATE)

GUI (Langform) GUI (Kurzform)

DATE 'YESTERDAY'

HSQLDB Firebird

Gibt das Datum von Gestern an, Langform: CAST('YESTERDAY' AS DATE)

GUI (Langform) GUI (Kurzform)

DATE 'TOMORROW'

HSQLDB Firebird

Gibt das Datum von Morgen an, Langform: CAST('TOMORROW' AS DATE)

GUI (Langform) GUI (Kurzform)

TO_CHAR(datetime, string)

HSQLDB Firebird

Setzt eine Datums- bzw. Timestampeingabe in einen entsprechenden String um.

Folgende Zeichen sind definiert:

'Y' bis 'YYYY' (Jahr, 1 bis 4 Stellen)

'IY' bis 'IYYY' (Jahr nach ISO, 2 bis 4 Stellen)

'MM' (Monat, zweistellig)

'MON' (Monatsname, Kurzfassung, berücksichtigt GUI-Sprache)

'MONTH' (Monatsname, Langfassung)

'w' (Woche des Jahres)

'W' (Woche des Monats)

'IW' (Woche des Jahres nach ISO-Standard)

'd' (Tag der Woche)

'D' (Tagesname, Kurzfassung, berücksichtigt GUI-Sprache)

'DD' oder 'dd' (Tag des Monats, zweistellig)

'H' (Stunde von 0-23)

'HH' (Stunde von 0-11)

'm' (Minute)

's' (Sekunde)

'a' (AM oder PM für Stunde von 0-11)

viele andere Zeichen werden direkt übernommen:

TO_CHAR(CURRENT_DATE,'D, DD.MON.YYYY') = Sa, 05.Nov.2016

Die Funktion läuft nur mit bereits eingegebenen Datumswerten, die aus der Datenbank gelesen werden.

GUI

EXTRACT(string FROM datetime)

HSQLDB Friebird

Kann viele der Datums- und Zeitfunktionen ersetzen. Gibt das Jahr, den Monat, den Tag usw. von einem Datums- bzw. Datumszeitwert wieder.

EXTRACT(DAY FROM "Datum") gibt den Tag im Monat wieder.

HSQLDB: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

Firebird zusätzlich: WEEK (GUI)

Firebird (Bug): WEEKDAY, YEARDAY, MILLISECOND.

GUI

Systemfunktionen

IFNULL(exp,value) HSQLDB Firebird Wenn exp NULL ist, wird value zurückgegeben, sonst exp. Stattdessen kann als Erweiterung auch COALESCE() genutzt werden. Exp und value müssen den gleichen Datentyp haben.

IFNULL ist eine wichtige Funktion, wenn Felder durch Rechnung oder CONCAT miteinander verbunden werden. Der Inhalt des Ergebnisses wäre NULL, wenn auch nur ein Wert NULL ist. "Nachname"||', '||"Vorname" würde für Personen, bei denen z.B. der Eintrag für "Vorname" fehlt, ein leeres Feld, also NULL ergeben. "Nachname"||IFNULL(', '||"Vorname",'') würde stattdessen auch nur "Nachname" ausgeben.

GUI

CASEWHEN(exp,v1,v2)

HSQLDB Firebird IIF(exp,v1,v2) HSQLDB Firebird

Wenn exp wahr ist wird v1 zurückgegeben, sonst v2. Stattdessen kann auch CASE WHEN genutzt werden.

CASEWHEN("a">10,'Ziel erreicht','noch üben') gibt 'Ziel erreicht' aus, wenn der Inhalt des Feldes "a" größer als 10 ist.

GUI

CONVERT(term,type)

HSQLDB Firebird

CAST(term AS type)

HSQLDB Firebird

Wandelt term in einen anderen Datentyp um.

CONVERT("a",DECIMAL(5,2)) macht aus dem Feld "a" ein Feld mit 5 Ziffern, davon 2 Nachkommastellen. Ist die Zahl zu groß, so wird ein Fehler ausgegeben.

GUI

COALESCE(expr1,expr2,expr3,...)

HSQLDB Firebird

Wenn expr1 nicht NULL ist, wird expr1 wiedergegeben, ansonsten wird expr2 überprüft, danach dann expr3 usw. Sämtliche Ausdrücke müssen zumindest einen ähnlichen Datentyp haben. So geht die alternative Darstellung von Ganzzahlen und Fließkommazahlen, aber nicht auch noch des eines Datums- oder Zeitwertes.

COALESCE("Spitzname", "Vorname", 'Herrn/Frau')

wählt den Spitznamen, wenn dieser vorhanden ist, ansonsten den Vornamen und wenn dieser auch nicht bekannt ist, dann allgemein 'Herrn/Frau'.

GUI

NULLIF(v1,v2)

HSQLDB Firebird

Wenn v1 gleich v2 ist, wird NULL wiedergegeben, ansonsten v1.

Die Daten müssen vom Typ her vergleichbar sein.

GUI

CASE v1 WHEN v2 THEN v3 [ELSE v4] END

HSQLDB Firebird

DECODE(v1, v2, v3, v4)

HSQLDB Firebird

Wenn v1 gleich v2 ist, wird v3 wiedergegeben. Sonst wird v4 wiedergegeben oder NULL, wenn kein ELSE formuliert ist.

GUI (HSQLDB)

GUI (Firebird)

CASE WHEN expr1 THEN v1[WHEN expr2 THEN v2] [ELSE v4] END

HSQLDB Firebird

Wenn expr1 wahr ist wird v1 zurückgegeben. [Optional können weitere Fälle angegeben werden] Sonst wird v4 wiedergegeben oder NULL, wenn kein ELSE formuliert ist.

CASE WHEN DAYOFWEEK("Datum")=1 THEN 'Sonntag' WHEN DAYOFWEEK("Datum")=2 THEN 'Montag' … END könnte per SQL den Tagesnamen ausgeben, der sonst in der Funktion nur in Englisch verfügbar ist.

GUI

MAXVALUE(expr [, expr ...])

HSQLDB Firebird

Sucht den höchsten Wert im Vergleich zu verschiedenen Ausdrücken heraus. Ergibt NULL, wenn ein Wert leer ist. Im Gegensatz zur Aggregatfunktion MAX() können hier die Werte verschiedener Felder miteinander verglichen werden.

GUI

MINVALUE(expr [, expr ...])

HSQLDB Firebird

Sucht den niedrigsten Wert im Vergleich zu verschiedenen Ausdrücken heraus. Ergibt NULL, wenn ein Wert leer ist. Im Gegensatz zur Aggregatfunktion MIN() können hier die Werte verschiedener Felder miteinander verglichen werden.

GUI