Если вы не вычли время или не добавили время, datetime.now()
никогда не будет больше или равно datetime.now() + x
В этом случае вы добавляете 60 секунд к datetime.now()
и затем спрашиваете, больше ли datetime.now()
или равно datetime.now() + 60 seconds
. Это невозможно.
Если ваше намерение состоит в том, чтобы печатать, когда текущая дата больше, чем дата вашего теста, вам нужно иметь дату теста минус 60 секунд.
import sqlite3
from datetime import *
conn = sqlite3.connect(":memory:")
c = conn.cursor()
c.execute("CREATE TABLE mutes (name text, seconds int)")
conn.commit()
c.execute("INSERT INTO mutes VALUES (:name, :seconds)", {"name": "William", "seconds": 60})
conn.commit()
while True:
c.execute("SELECT * FROM mutes WHERE name=:name", {"name":"William"})
now = datetime.now()
togo = datetime.now() - timedelta(seconds=int(c.fetchone()[1]))
if now >= togo:
print("Release!!!")
break
Если вы хотите, чтобы while True
работал в течение 60 секунд, прежде чем вы получите break
и print
, тогда вы можете изменить это на:
импорт sqlite3
с даты и времени импорта *
conn = sqlite3.connect(":memory:")
c = conn.cursor()
c.execute("CREATE TABLE mutes (name text, seconds int)")
conn.commit()
c.execute("INSERT INTO mutes VALUES (:name, :seconds)", {"name": "William", "seconds": 60})
conn.commit()
c.execute("SELECT * FROM mutes WHERE name=:name", {"name":"William"})
togo = datetime.now() - timedelta(seconds=int(c.fetchone()[1]))
while True:
now = datetime.now()
if now >= togo:
print("Release!!!")
break