Wie „select current_timestamp“ in hsqldb zu tun?
-
05-09-2019 - |
Frage
Oracle:
select systimestamp from dual
MySQL:
select current_timestamp
SQL Server:
select current_timestamp
PostgreSQL:
select current_timestamp
Die Frage ist, wie kann ich die aktuellen Zeitstempel in HSQLDB bekommen? Ich benutze Version 1.8.0.10
Lösung
Sie können schreiben
select current_timestamp from tablename
wo tablename
ist eine echte Tabelle in Ihrer Datenbank.
Das Ergebnis der Abfrage ist nur der aktuelle Zeitstempel.
Andere Tipps
In einer ausgewählten ich
SELECT CURRENT_DATE AS today, CURRENT_TIME AS now FROM (VALUES(0))
@ alexdown Antwort ist recht Recht - unter 1.8 benötigen Sie eine einzeilige Beziehung, dies zu tun, wie Oracle DUAL
oder die Interbase / Firebird RDB$DATABASE
Tabelle
Wenn Sie auf die 2.0-Serie bewegen, jedoch werden Sie in der Lage sein, den SQL-99 „VALUES Konstruktor“ zu verwenden, ohne Abhängigkeit von einer einzeiligen Beziehung:
sql> VALUES (current_timestamp);
2010-04-22 15:22:40.997
Wenn Sie die Spalte von den herstellerspezifischen Vorgaben umbenennen müssen, die Picks WERTE, können Sie immer verwenden eine select: SELECT * FROM (VALUES (current_timestamp)) v(my_new_name)
Sie können mit
CALL current_timestamp
den aktuellen Zeitstempel abzurufen. Nach einer Diskussion über die HSQL Mailing-Liste ist dies wesentlich effizienter als ein Dummy-Auswahl von INFORMATION_SCHEMA.SYSTEM_TABLES
tun.
Mit HSQLDB 2.1 und höher haben Sie alle Optionen.
Mit der Verbindungseigenschaft hsqldb.syntax_ora, hsqldb.syntax_pgs, hsqldb.syntax_mss oder hsqldb.syntax_mys = true Sie die von anderen Datenbanken unterstützt Formulare verwenden können. Die äquivalente SQL ist SET DATABASE SQL SYNTAX ORA TRUE
, und ähnlich für andere Dialekte.
Die native, SQLStandard Form von HSQLDB in allen Modi unterstützt, ist dies:
VALUES (CURRENT_TIMESTAMP)