хочу сравнить
if two >= int(times[2]): ValueError: invalid literal for int() with base 10: '2021-12-22 23:27:36.092346'
Без инт() ошибка что нельзя сравнить с str как решить?
Что ты с чем сравниваешь?
А как ты собрался строку с датой в число преобразовывать вообще? И что лежит в two?
В базе у тебя лежит строковое представление времени. Что лежит в two?
Two - Текущая дата Тогда как правильно сравнить?
Текущая дата в каком виде? В виде даты?
Бля, я чёт такое намудрил, щас
#текущая now = datetime.now() #текущая в формате time1 = now.strftime("%d.%m.%y, %H:%M") #дата через час now_new = (datetime.now() + timedelta(hours=24)) #дата через день в формате time2 = now_new.strftime("%d.%m.%y, %H:%M") #await message.answer(f"сейчас:\n {time1}\n\nчерез 24 часа:\n{time2}") for data_db in sql.execute("SELECT id_user, money, data FROM money_table WHERE id_user = ?", (message.from_user.id,)): time_db = data_db[2] if now_new >= time_db: print("done")
почему даты в запросе не сравнить?
что сделать нужно вообще, для чего даты сравнивать?
Считай это бонус раз в 24 часа, если юзер его взял 24 часа назад то может взять новый
Всё равно непонятно. В базе лежит время последнего взятия бонуса?
Когда он взял, записал время в бд, если хочет взять, сравниваю с бд и сейчас, если прошло 24 часа то даю бонус
Берешь из базы Через datetime.strptime превращаешь строку в объект datetime Сравниваешь datetime.now минус получившийся объект с timedelta(hours=24)
>>Через datetime.strptime превращаешь строку в объект datetime Можешь подсказать как?
Документация не помогла? Что не получилось?
data - отметка когда пользователь брал последний раз? и какая субд?
Обсуждают сегодня