Как выбрать даты за последние 7 дней с интервалом 5 минут в mysql - PullRequest
1 голос
/ 28 февраля 2020

У меня есть таблица с датами и значениями вроде этого:

+----------------------+-------+
|         time         | value |
+----------------------+-------+
| 2020-02-28 08:30:20  |    30 |
| 2020-02-28 08:30:25  |    15 |
| 2020-02-28 08:30:30  |    30 |
| 2020-02-28 08:30:35  |    10 |
+----------------------+-------+

Мне нужны даты за последние 7 дней, каждые 5 минут без секунд.

+-------------------+-------+
|       time        | value |
+-------------------+-------+
| 2020-02-28 08:30  | 30    |
| 2020-02-28 08:35  | 5     |
| 2020-02-28 08:40  | 30    |
| 2020-02-28 08:45  | 4     |
+-------------------+-------+

Можно ли создать такой запрос?

1 Ответ

0 голосов
/ 28 февраля 2020

Вы можете использовать что-то вроде этого:

SELECT DATE_FORMAT($column, '%H:%i'),`value` FROM $table WHERE MOD(MINUTE($Whenـyouـwantـitـtoـstart),5) = 0  AND `time` >= DATE(NOW()) - INTERVAL 7 DAY

Например:

SELECT DATE_FORMAT(`time`, '%H:%i'),`value` FROM users WHERE  MOD(MINUTE((NOW()),5) = 0 
AND `time` >= DATE(NOW()) - INTERVAL 7 DAY

Если вы хотите иметь время без секунд, вы должны использовать:

DATE_FORMAT(`time`, '%H:%i')

запрос под выбранными строками за последние 7 дней

WHERE `time` >= DATE(NOW()) - INTERVAL 7 DAY

, а функция MOD (N, M) возвращает остаток числа, разделенный на другое число. Вы можете использовать это так:

WHERE MOD(MINUTE("2020-02-28 08:45:00"),5)=0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...