将日期时间插入数据库

时间:2019-05-19 17:19:04

标签: python-3.x sqlite datetime sql-insert

有人可以解释如何使用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)

1 个答案:

答案 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');

我建议您重命名该列,而不必经常记住使用引号transactioncreated_at在行时间戳中很常见。我还建议using an ORM rather than writing SQL by hand;它会为您处理所有报价,并具有很多其他好处。