DATE_SUB和DATE_ADD在H2中用于MySQL

agu*_*ina 8 mysql scala h2

我使用MySQL作为我的数据库,使用H2进行测试.我也在使用playframework 2.3.x和Scala,但我认为这与问题目的无关.

H2与我在查询中使用的某些函数存在冲突

SELECT *
FROM subscriptions
WHERE active_until >= (DATE_SUB(CURDATE(), INTERVAL 3 DAY))
AND active_until <= (DATE_ADD(CURDATE(), INTERVAL 1 DAY))
AND status = "ACTIVE"
Run Code Online (Sandbox Code Playgroud)

导致问题的函数是DATE_SUB和DATE_ADD.

是否有一个解决方法,我可以使这项工作或更改查询而不破坏它的mysql?

agu*_*ina 12

最后我能够解决它.我不得不改变DATE_ADDTIMESTAMPADDDATE_SUBTIMESTAMPDIFF.然后我改变CURDATE()CURRENT_DATE.此方法的符号也会改变,但对H2和My都有效.

SELECT *
FROM subscriptions
WHERE active_until >= (TIMESTAMPDIFF(DAY, 3, CURRENT_DATE))
AND active_until <= (TIMESTAMPADD(DAY, 1, CURRENT_DATE))
AND status LIKE 'ACTIVE'
Run Code Online (Sandbox Code Playgroud)