Мы используем HSQLDB для JUnits, наша производственная база данных - Oracle.HSQLDB просто значение времени вставки
У меня есть таблица, в которой есть поле (тип timestamp в Oracle), который содержит информацию о каком-то важном времени в день.
Я хотел подготовить тестовые данные для JUnit в скрипте, но мне не удалось.
Основная идея, которую я могу сделать в Oracle DB является
SYSDATE - TRUNC(SYSDATE)
, когда я попробовал то же самое с CURRENT_TIME
в HSQLDB я получил сообщение об ошибке:
org.hsqldb.HsqlException: incompatible data type in conversion
следующая идея, которую я получил, чтобы добавить время в "пустой датой", попробовал:
DATE '0000-01-01'
но получил
org.hsqldb.HsqlException: data exception: invalid datetime format
странно для DATE '2013-01-01'
он отлично работает, может быть, initialia нули проблема ... нет, они не являются одинаковыми для DATE '0-01-01'
...
На этом этапе я был вид ума уже (думаю, что я может сделать в Oracle через секунду, и я провел здесь несколько часов).
От documentation Я попытался найти комбинацию функций, которые создают требуемый результат, но, к сожалению, я обнаружил, что документация не ясна. Кажется, так что для первого чтения, но когда попробовал я был удивлен, почему это
DATEADD('hour', 1, CURRENT_DATE)
работает отлично, в то время как
DATEADD('hour', 1, CURRENT_TIME)
заканчивается
org.hsqldb.HsqlException: incompatible data type in conversion
, как напротив, DATE_ADD работает как и тип параметра для обеих функций одинаковый в документации: -/
Я считаю, что могу сделать, somethi ng like
// 4x call of DATEADD, datetime not working as described above
date - years - months - days + seconds_from_midnight
но должно быть что-то простое в использовании (надеюсь, так).
HSQLDB версия: 2.3.1
Хорошо, синтаксис установки ORA является хорошим обходным решением в этом случае. Около года 0 меня смутила Java, здесь доступно установить год на 0. – Betlista