Como fazer “current_timestamp selecione” em hsqldb?
-
05-09-2019 - |
Pergunta
Oracle:
select systimestamp from dual
MySQL:
select current_timestamp
SQL Server:
select current_timestamp
PostgreSQL:
select current_timestamp
A questão é: como posso obter a hora atual em HSQLDB ? Eu uso a versão 1.8.0.10
Solução
Você pode escrever onde O resultado da consulta é apenas o timestamp atual. select current_timestamp from tablename
tablename
é uma tabela real em seu banco de dados.
Outras dicas
Em um seleto uso I
SELECT CURRENT_DATE AS today, CURRENT_TIME AS now FROM (VALUES(0))
de @ alexdown resposta é bastante direito - em 1,8 você precisa de uma relação de uma linha para fazer isso, como DUAL
da Oracle ou mesa RDB$DATABASE
o InterBase / Firebird
Quando você move para a série 2.0, no entanto, você vai ser capaz de usar o SQL-99 "VALORES construtor" sem depender de uma relação de uma linha:
sql> VALUES (current_timestamp);
2010-04-22 15:22:40.997
Se você precisar mudar o nome da coluna dos padrões específicos do fornecedor que os valores picaretas, você sempre pode contratar um select: SELECT * FROM (VALUES (current_timestamp)) v(my_new_name)
Você pode usar
CALL current_timestamp
para recuperar o timestamp atual. De acordo com uma discussão sobre a lista de discussão HSQL isso é muito mais eficiente do que fazendo um boneco de selecionar a partir de INFORMATION_SCHEMA.SYSTEM_TABLES
.
Com HSQLDB 2.1 e mais tarde você tem todas as opções.
Com a hsqldb.syntax_ora propriedade de conexão, hsqldb.syntax_pgs, hsqldb.syntax_mss ou hsqldb.syntax_mys = true você pode utilizar os formulários suportados por outros bancos de dados. O SQL equivalente é SET DATABASE SQL SYNTAX ORA TRUE
, e semelhante para outros dialetos.
O, forma SQLStandard nativa, apoiado por HSQLDB em todos os modos é a seguinte:
VALUES (CURRENT_TIMESTAMP)