tutorial to_date manager hsql functions example data create sql database hsqldb embedded-database

to_date - timestamp to date hive sql



¿Cómo hacer "select current_timestamp" en hsqldb? (5)

Oráculo:

select systimestamp from dual

MySQL:

select current_timestamp

Servidor SQL:

select current_timestamp

PostgreSQL:

select current_timestamp

La pregunta es, ¿cómo puedo obtener la marca de tiempo actual en HSQLDB ? Yo uso la versión 1.8.0.10


Con HSQLDB 2.1 y posteriores tienes todas las opciones.

Con la propiedad de conexión hsqldb.syntax_ora, hsqldb.syntax_pgs, hsqldb.syntax_mss o hsqldb.syntax_mys = true puede usar los formularios compatibles con otras bases de datos. El SQL equivalente es SET DATABASE SQL SYNTAX ORA TRUE , y similar para otros dialectos.

El formulario nativo, SQLStandard, soportado por HSQLDB en todos los modos, es este:

VALUES (CURRENT_TIMESTAMP)


En un selecto utilizo

SELECT CURRENT_DATE AS today, CURRENT_TIME AS now FROM (VALUES(0))


Puedes escribir

select current_timestamp from tablename

donde tablename es una tabla real en su base de datos.

El resultado de la consulta es solo la marca de tiempo actual.


Puedes usar

CALL current_timestamp

para recuperar la marca de tiempo actual. De acuerdo con una discusión en la lista de correo de HSQL, esto es mucho más eficaz que hacer una selección ficticia de INFORMATION_SCHEMA.SYSTEM_TABLES .


La respuesta de @ alexdown es bastante correcta: bajo 1.8 necesita una relación de una fila para hacer esto, como DUAL de Oracle o la tabla InterBase / Firebird RDB$DATABASE .

Sin embargo, cuando pase a la serie 2.0, podrá usar el "constructor de VALORES" SQL-99 sin depender de una relación de una fila:

sql> VALUES (current_timestamp); 2010-04-22 15:22:40.997

Si necesita cambiar el nombre de la columna de los valores predeterminados específicos del proveedor que selecciona VALUES, siempre puede emplear una selección: SELECT * FROM (VALUES (current_timestamp)) v(my_new_name)