有人可以解释如何使用python将datetime插入SQLite数据库吗? 哪种数据类型应该是日期时间,我尝试了多种方法
我的怀疑是基于CS50中的问题集7,我们使用flask作为Web框架
history
是数据库的名称
transaction
是字段名称
db.execute("INSERT INTO history (transaction) VALUES(:d)",
d=datetime.datetime.today())
错误消息,运行应用程序时收到此消息
builtins.RuntimeError
RuntimeError: near "transaction": syntax error [SQL: "INSERT INTO history (transaction) VALUES('2019-05-19 17:14:25')"] (Background on this error at: http://sqlalche.me/e/e3q8)
答案 0 :(得分:0)
transaction
是SQLite中的reserved word。
sqlite> INSERT INTO history (transaction) VALUES('2019-05-19 17:14:25');
Error: near "transaction": syntax error
为了消除保留词的歧义,必须特别引用它们。在这种情况下,请使用双引号作为标识符。
sqlite> INSERT INTO history ("transaction") VALUES('2019-05-19 17:14:25');
我建议您重命名该列,而不必经常记住使用引号transaction
。 created_at
在行时间戳中很常见。我还建议using an ORM rather than writing SQL by hand;它会为您处理所有报价,并具有很多其他好处。