'Subtracting Minutes from SYSTIMESTAMP or SYSDATE in H2 not working

Subtracting Minutes from SYSTIMESTAMP or SYSDATE in H2 not working .The result for following two commands are same:

select SYSTIMESTAMP from dual;    

select SYSTIMESTAMP- 30 / 1440 from dual;


Solution 1:[1]

That math only works for DATE data types (e.g. SYSDATE), not for TIMESTAMP. For TIMESTAMP, use the INTERVAL function:

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

See here for a thorough explanation of the differences in the two data types and their operations: https://oracle-base.com/articles/misc/oracle-dates-timestamps-and-intervals

H2 doesn't support the same functions as Oracle; use something like this:

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

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1