Openshift不会对MySQL的间隔作出反应
我已经在locanhost和Openshift上测试了表Openshift不会对MySQL的间隔作出反应,openshift,Openshift,我已经在locanhost和Openshift上测试了表test,我面临的问题是,在Openshift上,当我像下面这样查询数据WHERE arrivaltime()-INTERVAL 2 min和curtime()+INTERVAL 2 min之间的到达时间时,我没有得到任何返回,尽管在本地主机上我得到了路由9。在openshift上,我根据服务器时间插入到达时间。在localhost上,我根据本地时间插入到达时间,但当我将查询更改为以下形式时,WHERE time\u格式(到达时间,%H:%
test
,我面临的问题是,在Openshift上,当我像下面这样查询数据WHERE arrivaltime()-INTERVAL 2 min和curtime()+INTERVAL 2 min
之间的到达时间时,我没有得到任何返回,尽管在本地主机上我得到了路由9。在openshift上,我根据服务器时间插入到达时间。在localhost上,我根据本地时间插入到达时间,但当我将查询更改为以下形式时,WHERE time\u格式(到达时间,%H:%I')=time\u格式(curtime(),“%H:%I”)
我在openshift上得到9
,但我需要的响应是+-2
分钟。我怎样才能修好它?或者某人是否拥有openshift帐户?如何测试下面的表和查询
谢谢你的帮助
测试表
CREATE TABLE test(
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
arrivaltime Time NOT NULL,
route INT(11) NOT NULL
)
04:15:15
插入数据:
INSERT INTO test(arrivaltime, route) values('04:16:00', 9)
SELECT route FROM test
WHERE arrivaltime BETWEEN curtime() - INTERVAL 2 MINUTE AND curtime() + INTERVAL 2 MINUTE
此查询在Openshift上不起作用,而在localhost上起作用:
INSERT INTO test(arrivaltime, route) values('04:16:00', 9)
SELECT route FROM test
WHERE arrivaltime BETWEEN curtime() - INTERVAL 2 MINUTE AND curtime() + INTERVAL 2 MINUTE
openshift curtime()
当我在openshift上查询这样的测试时,我得到了响应,但到达时间应该等于当前时间
SELECT route FROM test
WHERE time_format(arrivaltime,'%H:%i')= time_format(curtime() ,'%H:%i')
嗯,我不太擅长MySQL。也许有人可以改进我的问题。但我想问题在于您的服务器本地时间格式,或者MySQL在添加或减去时间后如何返回时间格式 对于这个问题,我建议使用这个查询,而不是像那样直接修改它
select route from test where arrivaltime between subtime(curtime(), '00:02:00') and addtime(curtime(), '00:02:00');
为了确定问题所在,您可以尝试使用此查询检查是否存在警告或错误
show warnings;
show errors;
你太棒了,我三周来一直在努力解决这个问题。非常感谢:)