2016-05-18 4 views
4

Ich verwende MySQL als meine Datenbank und H2 zum Testen. Ich benutze auch playframework 2.3.x und Scala, aber ich denke, es spielt keine Rolle für den Fragzweck.DATE_SUB und DATE_ADD in H2 für MySQL

H2 hat einen Konflikt mit einigen Funktionen, die ich in einer Abfrage bin mit

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

Die Funktionen, die das Problem sind DATE_SUB und DATE_ADD verursachen.

Gibt es eine Problemumgehung, in der ich diese Arbeit machen oder die Abfrage ändern kann, ohne sie für mysql zu brechen?

+1

Ich habe es aufgegeben, H2 zum Testen zu verwenden, da der Unterschied zwischen den beiden Varianten von SQL zu mühsam war. –

+0

@ m-z danke für deinen Kommentar. – agusgambina

Antwort

6

Endlich konnte ich es lösen. Ich musste DATE_ADD für TIMESTAMPADD und DATE_SUB mit TIMESTAMPDIFF ändern. Dann änderte ich CURDATE() für CURRENT_DATE. Auch das Zeichen der Methode ändert sich aber funktioniert sowohl bei H2 als auch bei My.

+0

Es funktioniert. Vielen Dank! – NCrash