Как сделать «выбрать current_timestamp» в hsqldb?
-
05-09-2019 - |
Вопрос
Оракул:
select systimestamp from dual
MySQL:
select current_timestamp
SQL-сервер:
select current_timestamp
PostgreSQL:
select current_timestamp
Вопрос в том, как я могу получить текущую метку времени в HSQLDB?Я использую версию 1.8.0.10
Решение
Ты можешь написать
select current_timestamp from tablename
где tablename
это реальная таблица в вашей базе данных.
Результатом запроса является только текущая временная метка.
Другие советы
В выборе я использую
SELECT CURRENT_DATE AS today, CURRENT_TIME AS now FROM (VALUES(0))
Ответ @alexdown совершенно прав - для этого в версии 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 * FROM (VALUES (current_timestamp)) v(my_new_name)
Вы можете использовать
CALL current_timestamp
чтобы получить текущую временную метку.Согласно обсуждению в списке рассылки HSQL, это намного эффективнее, чем фиктивный выбор из INFORMATION_SCHEMA.SYSTEM_TABLES
.
В 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)