我正在运行组件测试并将数据以Oracle模式写入内存中的h2数据库。问题是,在下面进行插入以将数据加载到数据库中时,它不起作用。在银行中搜索数据时,它将显示当前日期,就好像它只是一个sysdate。
INSERT INTO AVAILABLE_EMAILS (ID, EMAIL, TYPE, DAT_CREATION) VALUES (1, '[email protected]', 0, SYSDATE - (30/1440));
INSERT INTO AVAILABLE_EMAILS (ID, EMAIL, TYPE, DAT_CREATION) VALUES (2, '[email protected]', 0, SYSDATE - (20/1440));
有人可以帮我吗?
如果同时使用两个数据库,则应避免使用特定于供应商的语法。
您可以使用符合SQL标准的语言
LOCALTIMESTAMP - INTERVAL '30' MINUTE
在Oracle和H2的最新版本中。
H2还支持某些特定于Oracle的旧式日期时间算术运算符,但H2中的整数除法结果是整数值30/1440=0
。您可以改用30.0/1440
(在两个数据库中),但是最好完全避免这种计算,因为标准语法更具可读性。