#mysql #date #datetime #group-by #hour
#mysql #Дата #дата и время #группировка по #час
Вопрос:
я хочу посчитать данные за последний час с текущей датой (например, now () — 2020-04-11 12:30:00, затем я хочу получить данные до 12. есть идеи?
table_a
timestamp
2020-04-11 10:00:00
2020-04-11 10:00:00
2020-04-11 11:00:00
2020-04-11 12:00:00
2020-04-11 12:30:00
ожидаемые результаты:
timestamp count
2020-04-11 10:00:00 2
2020-04-11 11:00:00 1
2020-04-11 12:00:00 1
я использую mysql 8
Комментарии:
1. Пометьте свой вопрос базой данных, которую вы используете.
2. я использую mysql 8
Ответ №1:
Исходя из других вопросов, похоже, что вы используете MySQL. Итак, один из методов:
where timestamp >= curdate() and
hour(timestamp) < hour(now())
Комментарии:
1. почему вывод был пустым?
2. Я исправил запрос. Это должно быть
hour(now())
, а неhour(curdate())
.3. спасибо, это работает для меня! можете ли вы ответить на мои вопросы?
4. @hinafaya Нет. Это так не работает.
5. @hinafaya Но вы не можете спросить об этом. Я действительно не думаю, что это ясно. Я не отрицал ваш вопрос, но и не повышал голос. С другой стороны, если ответ Гордона вам помог, пожалуйста, поддержите его. Примите тот ответ, который, по вашему мнению, помог вам больше всего.
Ответ №2:
Как уже упоминал Гордон, вам нужно перейти к предложению where, однако, глядя на вашу таблицу:
SELECT timestamp, COUNT(*)
FROM table_a
WHERE timestamp >= curdate() and
hour(timestamp) < hour(now())
Group by timestamp
Должен быть полный запрос…..
Комментарии:
1. это также работает для меня, спасибо! можете ли вы ответить на мои вопросы?
2. @hinafaya если это сработает, можете ли вы принять это, чтобы будущие читатели знали, что вопрос решен??