0

I'm trying to update my database. I want to change None to time and while I'm running it

sqlite3.OperationalError: near ":59": syntax error

my code to update is :

    now = datetime.now()
    trigger_time = str(now.strftime("%H:%M"))
    db.execute(f"""Update Signals set Triger_Time = {trigger_time} where ID = {int(signal_id)}""")

SOLVED BY (https://stackoverflow.com/a/69661333/16613629)

Answer : You forget about quotes around Triger_Time:

now = datetime.now()
trigger_time = str(now.strftime("%H:%M"))
db.execute(f"""Update Signals set Triger_Time = '{trigger_time}' where ID = {int(signal_id)}""")
  • 1
    It's better to use parameter substitution rather than string formatting to insert values into SQL statements - see [How to use variables in SQL statements in Python](https://stackoverflow.com/q/902408/5320906). – snakecharmerb Oct 21 '21 at 12:05

2 Answers2

0

You forget about quotes around Triger_Time:

now = datetime.now()
trigger_time = str(now.strftime("%H:%M"))
db.execute(f"""Update Signals set Triger_Time = '{trigger_time}' where ID = {int(signal_id)}""")
11_22_33
  • 116
  • 1
  • 15
0

Although the accepted answer of adding quotation marks will solve your immediate issue, it's generally preferred to use parameterized queries rather than string formatting to build SQL code.

now = datetime.now()
trigger_time = str(now.strftime("%H:%M"))
db.execute("Update Signals set Triger_Time = ? where ID = ?", [trigger_time, int(signal_id)])
dan04
  • 87,747
  • 23
  • 163
  • 198