从 H2 中的 TIMESTAMP 和 SYSDATE 中减去分钟不起作用

Subtracting Minutes from SYSTIMESTAMP or SYSDATE in H2 not working

H2 中从 TIMESTAMP 和 SYSDATE 中减去分钟数无效。以下两个命令的结果相同:

select SYSTIMESTAMP from dual;    

select SYSTIMESTAMP- 30 / 1440 from dual;

该数学运算仅适用于 DATE 数据类型(例如 SYSDATE),不适用于 TIMESTAMP。对于 TIMESTAMP,使用 INTERVAL 函数:

select systimestamp, systimestamp - interval '30' second from dual;

SYSTIMESTAMP                        SYSTIMESTAMP-INTERVAL'30'SECOND    
----------------------------------- -----------------------------------
13-APR-22 03.34.41.414075000 PM GMT 13-APR-22 03.34.11.414075000 PM GMT

关于两种数据类型及其操作的差异的详尽解释,请参见此处:https://oracle-base.com/articles/misc/oracle-dates-timestamps-and-intervals

H2不支持与Oracle相同的功能;使用这样的东西:

SELECT DATEADD('SECOND',-30, CURRENT_TIMESTAMP) ...