Вопрос

Оракул:

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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top