我尝试了几种在这里找到的方法,但是比最后一个小时吐出的更多。
该表的字段t_timestamp中包含如下数据:
2018-06-29 00:00:02
2018-06-29 00:10:01
2018-06-29 00:20:02
2018-06-29 00:30:01
2018-06-29 00:40:02
2018-06-29 00:50:01
2018-06-29 01:00:02
2018-06-29 01:10:01
2018-06-29 01:20:02
2018-06-29 01:30:01
2018-06-29 01:40:02
2018-06-29 01:50:01
现在是2018-06-29 01:55:04
虽然我使用过类似的方法,但上面创建的方法是
WHERE t_timestamp >= DATE_SUB(NOW(), INTERVAL 1 HOUR)
WHERE (now() - t_timestamp)<360000
....
我的思维错误在哪里?
------已编辑------ 我认为问题出在t_timestamp的领域。一天的时间越长,从那天那一天开始我获得的数据越多,实际上是从今天开始。
我得到的时间字段为($ tickers [$ symbol1] ['datetime']): “ 2018-06-29T00:00:02.732”
我曾经格式化过它:
$a = explode('T',$tickers[$symbol1]['datetime']);
$b = explode(".",$a[1]);
$t_timestamp = $a[0] . " " . $b[0];
是不是造成了麻烦?
答案 0 :(得分:1)
演示:http://sqlfiddle.com/#!9/f5e2c3/8/0
解决方案:
create table mytime(times timestamp);
insert into mytime values('2018-06-29 00:00:02');
insert into mytime values('2018-06-29 00:10:01');
insert into mytime values('2018-06-29 00:20:02');
insert into mytime values('2018-06-29 00:30:01');
insert into mytime values('2018-06-29 00:40:02');
insert into mytime values('2018-06-29 00:50:01');
insert into mytime values('2018-06-29 01:00:02');
insert into mytime values('2018-06-29 01:10:01');
insert into mytime values('2018-06-29 01:20:02');
insert into mytime values('2018-06-29 01:30:01');
insert into mytime values('2018-06-29 01:40:02');
insert into mytime values('2018-06-29 01:50:01');
-- time from given time
select *
from mytime
where times >= DATE_SUB('2018-06-29 01:50:10',INTERVAL 1 HOUR);
-- time from now time
select *
from mytime
where times >= DATE_SUB(now(),INTERVAL 1 HOUR);