Причина, по которой вы получаете 26, а не 0, состоит в том, что отметка времени также содержит секунды.Преобразуйте свои метки времени UNIX в строки datetime (без секунд), а затем убедитесь, что компонент минут равен :00
:
SELECT *
FROM tablename
WHERE strftime('%d-%m-%Y %H:%M', datetime(timestamp, 'unixepoch')) LIKE '%:00'
Я полагаю, вы понимаете, что ожидаемый результат на самом деле не целый час, потому что онсодержат 26 сек.Только если вы пропустите секунды, это считается целым часом. Редактировать :Проверьте, быстрее ли это:
SELECT *
FROM tablename
WHERE (timestamp - (timestamp % 60)) % 3600 = 0
или лучше:
SELECT *
FROM tablename
WHERE (timestamp / 60) % 60 = 0