start
нужно брать данные из БД, а в условии if
нужно в эту самую БД записывать datetime.datetime.now()
чтобы там была актуальная запись о времени вызова команды.import datetime
import time # модуль только для sleep
start = datetime.datetime.now() # Тут нужно взять время из БД
time.sleep(5) # Ждем 5 секунд для примера
end = datetime.datetime.now() # берем текущее время для сравнения
delta = end - start # Вычисляем разницу между двумя датами
print(delta.seconds) # выводим сколько прошло в секундах
if delta.seconds > 1 * 60 * 60 or not start: # Если прошло секунд больше чем 3600 или нет записи в БД
pass # тут собственно ваша логика
users = await Vine.select('user_id', 'count').where(Vine.count != 0).order_by(Vine.count).gino.all()