最后一小时数据

eivgtgni  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(327)

我试了好几种方法,但比上个小时吐出来的还多。
该表有一个字段t\u 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
....

我的思维错误在哪里?
------编辑-----我认为问题出在收集时的时间戳字段。一天越长,我从那天得到的数据就越多,实际上都是从今天开始的。
我得到的时间字段是($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];

会不会是这件事引起了麻烦?

hc8w905p

hc8w905p1#

演示: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);

相关问题