select * from myTable where REC_CREA < CURRENT_TIMESTAMP() - 120 days
我有麻烦从db2 sql转换到h2。我怎样才能得到h2中超过120天的记录呢?
您可以使用DATEADD()
。例如:
select *
from t
where rec_crea < dateadd(day, -120, current_timestamp());
示例脚本:
create table t (name varchar(10), rec_crea datetime);
insert into t (name, rec_crea) values ('Anne', '2020-06-01');
insert into t (name, rec_crea) values ('Louisa', '2021-01-07');
结果:NAME REC_CREA
---- ---------------------
Anne 2020-06-01 00:00:00.0
如果使用最新版本的H2,请使用符合标准的
select * from myTable where REC_CREA < LOCALTIMESTAMP - INTERVAL '120' DAY
为TIMESTAMP
列,(CURRENT_TIMESTAMP - INTERVAL '120' DAY
为TIMESTAMP WITH TIME ZONE
列,CURRENT_DATE - INTERVAL '120' DAY
为DATE
列)。
如果使用的是H2 1.4.197或更早的版本,请使用
select * from myTable where REC_CREA < CURRENT_TIMESTAMP - 120
在新版本中不要使用这个遗留语法,它不被官方支持。