I think, the best practice is to use a single SQL statement to update the records.
Since, SQLite has no boolean value, you need to set the value 1 (instead of True).
For instance, the statement could be:
import time
st = "UPDATE reminderFormat SET Reminded = 1 " \
"WHERE FutureTime <= {currentTime}".format(currentTime=time.time())
EDIT: Demo
Here is a demo:
import time
import sqlite3
records = [
(20183740995, 1503330725.0, "testtt", 0),
(20183740995, 1503330732.0, "testtt", 0),
(20183740995, 1503331334.0, "testtt", 0),
(20183740995, 1509999999.0, "testtt", 0),
]
con = sqlite3.connect(":memory:")
# Create the table
con.execute("create table reminderFormat(AuthorID, FutureTime, Message, Reminded)")
# Fill the table
con.executemany("INSERT INTO reminderFormat(AuthorID, FutureTime, Message, Reminded) VALUES (?, ?, ?, ?)", records)
curr_time = time.time()
con.execute("UPDATE reminderFormat SET Reminded = 1 WHERE FutureTime <= ?", (curr_time,))
# Print the table contents
for row in con.execute("SELECT AuthorID, FutureTime, Reminded FROM reminderFormat"):
print(row)
You get:
(20183740995, 1503330725.0, 1)
(20183740995, 1503330732.0, 1)
(20183740995, 1503331334.0, 1)
(20183740995, 1509999999.0, 0)