HSQL-Funktionen FAQ-Base
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 |