Как выбрать по времени? - PullRequest
0 голосов
/ 04 сентября 2018

Как выбрать песни (id) длиной более 2:00:00, используя TIME_TO_SEC ()?

songs
id  length
8   02:06:04
1   00:09:08
2   05:38:32
4   01:22:25
4   01:18:53
2   01:45:08
5   00:26:19

выход

 id time
 2   7:23:40
 8    2:06:04
 4   2:41:18

Ответы [ 3 ]

0 голосов
/ 04 сентября 2018

Вам не обязательно использовать TIME_TO_SEC здесь. Мы можем сделать прямое сравнение:

SELECT *
FROM songs
WHERE length > '02:00:00';

Предполагается, что либо ваш length столбец является истинным столбцом времени, либо это текст, но все данные имеют одинаковую ширину 8 (6 цифр).

Преимущество этого подхода заключается в том, что он позволяет использовать индекс в запросе length.

0 голосов
/ 04 сентября 2018

Я думаю, что это будет работать правильно:

SELECT id, SEC_TO_TIME(SUM(TIME_TO_SEC(length))) AS time
GROUP BY id
HAVING SUM(TIME_TO_SEC(length)) >  2 * 60 * 60
0 голосов
/ 04 сентября 2018

использовать простое предложение where с 7200 с

select * from songs where TIME_TO_SEC(length)>7200
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...