我必须使用python在我的SQL列中插入datetimes,但当我尝试以YYYY-MM-DD格式插入字符串时,HH:MM:SS SQLite给了我以下错误-sqlite3.OperationalError:near“11”:语法错误-
该列现在是文本格式(我也尝试了DATETIME),但它似乎不接受它,它接受的唯一格式是YYYY-MM-DD
这是我的代码:
for i in range(len(actualValue)):
attuale = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
c.execute('UPDATE alarm SET valoreAttuale = {} WHERE alarmId = {} '.format(actualValue[value], value + 1))
c.execute('UPDATE alarm SET raiseDateTime = {} WHERE alarmId = {} '.format("2020-09-28 11:10:45", value + 1))
从python sqlite3 api doc
使用placeholders的另一个很好的理由是这个例子。如果第二个sql是在没有
format
的情况下编写的,它将如下所示:UPDATE alarm SET raiseDateTime = "2020-09-28 11:10:45"
。但是format
正在“使用”引号("
),因此更新查询认为它得到了一个数字(2020-09-28的计算结果毕竟是一个数字),之后sql语法就崩溃了。可以通过在适当的位置添加适当的引号来“修复”查询。相反,我建议使用占位符,因为这是一种推荐的风格,也是一种很好的习惯相关问题 更多 >
编程相关推荐