Come fare “selezionare CURRENT_TIMESTAMP” in hsqldb?
-
05-09-2019 - |
Domanda
Oracle:
select systimestamp from dual
MySQL:
select current_timestamp
SQL Server:
select current_timestamp
PostgreSQL:
select current_timestamp
La domanda è: come posso ottenere il timestamp corrente in HSQLDB ? Io uso la versione 1.8.0.10
Soluzione
È possibile scrivere
select current_timestamp from tablename
dove tablename
è una vera e propria tabella nel database.
Il risultato della query è solo il timestamp corrente.
Altri suggerimenti
In un prescelto io uso
SELECT CURRENT_DATE AS today, CURRENT_TIME AS now FROM (VALUES(0))
@ di alexdown risposta è abbastanza destra - sotto 1.8 è necessario un rapporto one-fila per fare questo, come DUAL
di Oracle o la tabella RDB$DATABASE
InterBase / Firebird
Quando si sposta alla serie 2.0, tuttavia, sarete in grado di utilizzare lo SQL-99 "VALORI costruttore" senza fare affidamento su un rapporto a una riga:
sql> VALUES (current_timestamp);
2010-04-22 15:22:40.997
Se è necessario rinominare la colonna dai valori di default specifici del fornitore che i valori picconi, si può sempre utilizzare un prescelto: SELECT * FROM (VALUES (current_timestamp)) v(my_new_name)
È possibile utilizzare
CALL current_timestamp
per recuperare il timestamp corrente. Secondo una discussione sulla mailing list HSQL questo è molto più efficiente di fare un manichino selezionare dalla INFORMATION_SCHEMA.SYSTEM_TABLES
.
Con HSQLDB 2.1 e versioni successive di avere tutte le opzioni.
Con la hsqldb.syntax_ora proprietà di connessione, hsqldb.syntax_pgs, hsqldb.syntax_mss o hsqldb.syntax_mys = true è possibile utilizzare i moduli supportati da altri database. Lo SQL equivalente è SET DATABASE SQL SYNTAX ORA TRUE
, e simile per altri dialetti.
Il nativo, modulo SQLStandard, sostenuta da HSQLDB in tutte le modalità è questo:
VALUES (CURRENT_TIMESTAMP)