Выбрать данные, в которых время в столбце даты и времени находится в диапазоне (SQL, Clickhouse)

У меня есть запрос в Clickhouse, который подсчитывает строки с 15-минутным интервалом:

SELECT 
    toStartOfInterval(table.timestamp, INTERVAL 15 minute) AS interval_start,
    COUNT(*),
    station,
    ticket_name
FROM table
where date between '2018-01-01' and '2022-12-31'
GROUP BY interval_start, station, ticket_name
order by interval_start

timestamp имеет следующий формат: 2018-01-01T05:00:00

Я хочу добавить еще одно условие, чтобы получить все значения, где время находится в диапазоне от 05:00:00 до 10:00:00. Как мне это сделать?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
114
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете добавить дополнительное условие в предложение WHERE, используя функцию EXTRACT, чтобы извлечь часовой компонент временной метки и проверить, находится ли он между 5 и 10. Вот версия вашего запроса:

SELECT 
    toStartOfInterval(table.timestamp, INTERVAL 15 minute) AS interval_start,
    COUNT(*),
    station,
    ticket_name
FROM table
WHERE date BETWEEN '2018-01-01' AND '2022-12-31'
    AND EXTRACT(hour FROM table.timestamp) BETWEEN 5 AND 10
GROUP BY interval_start, station, ticket_name
ORDER BY interval_start

Или добавьте:

AND toHour(table.timestamp) >= 5 AND toHour(table.timestamp) <= 10

Другие вопросы по теме