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)