Вставка в базу данных h2 oracle режим не работает должным образом - PullRequest
0 голосов
/ 26 марта 2020

Я запускаю тест компонента и записываю данные в базу данных h2 в памяти в режиме Oracle. Проблема в том, что при выполнении вставки ниже для загрузки данных в базу данных она не работает. При поиске данных в банке отображается текущая дата, как если бы это была просто системная дата.

INSERT INTO AVAILABLE_EMAILS (ID, EMAIL, TYPE, DAT_CREATION) VALUES (1, 'mock@mock.com', 0, SYSDATE - (30/1440));

INSERT INTO AVAILABLE_EMAILS (ID, EMAIL, TYPE, DAT_CREATION) VALUES (2, 'mock_2@mock.com', 0, SYSDATE - (20/1440));

Может кто-нибудь мне помочь

1 Ответ

1 голос
/ 26 марта 2020

Если вы используете две базы данных одновременно, вам следует избегать использования синтаксиса c, определяемого поставщиком.

Вы можете использовать SQL Стандарт-совместимый

LOCALTIMESTAMP - INTERVAL '30' MINUTE

в последнее время версии Oracle и H2.

H2 также поддерживает некоторые устаревшие Oracle -specifi c datetime арифметические c операторы, но результатом целочисленного деления в H2 является целочисленное значение, 30/1440=0 , Вместо этого вы можете использовать 30.0/1440 (в обеих базах данных), но лучше вообще избегать таких вычислений, стандартный синтаксис более читабелен.

...