Ответ 1
Вы можете написать
select current_timestamp from tablename
где tablename
- реальная таблица в вашей базе данных.
Результат запроса - это только текущая метка времени.
Oracle:
select systimestamp from dual
MySQL:
select current_timestamp
SQL Server:
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 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)
С 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)
Вы можете использовать
CALL current_timestamp
чтобы получить текущую временную метку. Согласно обсуждению списка рассылки HSQL, это намного эффективнее, чем сделать фиктивный выбор из INFORMATION_SCHEMA.SYSTEM_TABLES
.