Openshift对MySQL的INTERVAL没有反应

时间:2015-06-19 08:23:15

标签: openshift

我已经测试了locanhost和Openshift上的表test,我遇到的问题是在openshift上,当我查询像WHERE arrivaltime BETWEEN curtime() - INTERVAL 2 MINUTE AND curtime() + INTERVAL 2 MINUTE这样的数据时,我没有收到任何回复,尽管在本地主机上我是让路线9回来。在openshift上,我根据服务器时间插入到达时间。在localhost上我根据当地时间插入到达时间,但是当我将查询更改为此表单WHERE time_format(arrivaltime,'%H:%i')= time_format(curtime() ,'%H:%i')时,我将9恢复到openshift,但我需要回复+- 2分钟。我该如何解决?或者有人有一个openshift帐户如何测试下面的表格和查询?

我感谢任何帮助。

测试表

CREATE TABLE test(
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
 arrivaltime Time  NOT NULL,
 route INT(11) NOT NULL   
)

插入数据:

INSERT INTO test(arrivaltime, route) values('04:16:00', 9)

此查询不适用于Openshift,适用于localhost:

SELECT route FROM test
WHERE arrivaltime BETWEEN curtime() - INTERVAL 2 MINUTE AND curtime() + INTERVAL 2 MINUTE

openshift curtime()

04:15:15

当我在openshift上查询这样的测试时,我得到了响应,但到达时间应该等于当前时间。

SELECT route FROM test
WHERE time_format(arrivaltime,'%H:%i')= time_format(curtime() ,'%H:%i')

1 个答案:

答案 0 :(得分:1)

好吧,我并不擅长MySQL。所以,也许有人可以在这里改进我​​的问题。但我想问题在于您的服务器本地时间格式,或者在您添加或减去时间后MySQL如何返回时间格式。

对于这个问题,我建议使用此查询,而不是尝试直接修改它。

select route from test where arrivaltime between subtime(curtime(), '00:02:00') and addtime(curtime(), '00:02:00');

并且还要确定问题所在,也许您可​​以尝试使用此查询来检查是否存在警告或错误。

show warnings;
show errors;