Подтвердить что ты не робот

Как сделать "select current_timestamp" в hsqldb?

Oracle:

select systimestamp from dual

MySQL:

select current_timestamp

SQL Server:

select current_timestamp

PostgreSQL:

select current_timestamp

Вопрос в том, как получить текущую временную метку в HSQLDB? Я использую версию 1.8.0.10

4b9b3361

Ответ 1

Вы можете написать

select current_timestamp from tablename  

где tablename - реальная таблица в вашей базе данных.

Результат запроса - это только текущая метка времени.

Ответ 2

В выборе я использую

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

Ответ 3

@alexdown answer совершенно прав - в 1.8 для этого требуется однострочное отношение, например Oracle DUAL или InterBase/Firebird RDB$DATABASE.

Однако, когда вы переходите к серии 2.0, вы сможете использовать конструктор VALUES SQL-99, не полагаясь на однострочное отношение:

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

Если вам нужно переименовать столбец из определенных по умолчанию значений по умолчанию, выбранных VALUES, вы всегда можете использовать select: SELECT * FROM (VALUES (current_timestamp)) v(my_new_name)

Ответ 4

С HSQLDB 2.1 и более поздними версиями у вас есть все варианты.

С помощью свойства соединения hsqldb.syntax_ora, hsqldb.syntax_pgs, hsqldb.syntax_mss или hsqldb.syntax_mys = true, вы можете использовать формы, поддерживаемые другими базами данных. Эквивалентный SQL равен SET DATABASE SQL SYNTAX ORA TRUE и аналогичен для других диалектов.

Собственная форма SQLStandard, поддерживаемая HSQLDB во всех режимах, такова:

VALUES (CURRENT_TIMESTAMP)

Ответ 5

Вы можете использовать

CALL current_timestamp

чтобы получить текущую временную метку. Согласно обсуждению списка рассылки HSQL, это намного эффективнее, чем сделать фиктивный выбор из INFORMATION_SCHEMA.SYSTEM_TABLES.