Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL的日期\子项和日期\加载项H2_Mysql_Scala_H2 - Fatal编程技术网

MySQL的日期\子项和日期\加载项H2

MySQL的日期\子项和日期\加载项H2,mysql,scala,h2,Mysql,Scala,H2,我使用MySQL作为我的数据库,使用H2进行测试。我也在使用PlayFramework2.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 = "

我使用MySQL作为我的数据库,使用H2进行测试。我也在使用PlayFramework2.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"
选择*
来自订阅
其中活动时间为>=(日期子项(CURDATE(),间隔3天))

直到我终于能够解决它。我必须用
TIMESTAMPDIFF
更改
DATE\u ADD
TIMESTAMPADD
DATE\u SUB
。然后我更改了当前日期的
CURDATE()
。方法的符号也会改变,但对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'
选择*
来自订阅
其中在>=(TIMESTAMPDIFF(第3天,当前日期))之前处于活动状态

和active_,直到我放弃尝试使用H2进行测试,因为两种风格的SQL之间的差异太麻烦了。我不确定
TIMESTAMPDIFF
是否是您想要的,因为它应该得到两个时间戳之间的差异,而不是从日期中减去一个时间间隔(请参阅:)但是TIMESTAMPDIFF和TIMESTAMPADD对h2和MySQL都有效吗?