Mysql данные последнего часа - PullRequest
0 голосов
/ 29 июня 2018

Я попробовал несколько способов, которые нашел здесь, но он выплевывает больше, чем в последний час.

В таблице есть поле 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];

Может быть, это вызывает проблемы?

1 Ответ

0 голосов
/ 29 июня 2018

Демо: 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); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...