使用 QSqlQuery 将当前时间添加到 table?

Add current time to table with QSqlQuery?

下面无法将当前时间添加到test4的dateTime中table,如何修改?

query.exec_("INSERT INTO test values('abc@wdc.com','abc1',dt"))
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
from datetime import datetime
database = QtSql.QSqlDatabase.addDatabase('QSQLITE')
database.setDatabaseName('test1.db')
database.open()
query = QSqlQuery()
query.exec_("CREATE TABLE IF NOT EXISTS test4(id varchar(50) PRIMARY KEY,password varchar(50),dateTime timestamp)")
dt=datetime.now()
query.exec_("INSERT INTO test VALUES('abc@wdc.com','abc1',dt"))

您没有添加 dt 变量,您添加的是“dt”字符串

您的代码中还有另外两个问题:您导入了 QSqlDatabase 但您正在使用 QtSql.QSqlDatabase,并且您将值添加到 test table 而你创建的是 test4.

from PyQt5.QtSql import QSqlDatabase, QSqlQuery
from datetime import datetime
database = <b>QSqlDatabase</b>.addDatabase('QSQLITE')
database.setDatabaseName('test1.db')
database.open()
query = QSqlQuery()
query.exec_("CREATE TABLE IF NOT EXISTS test4(id varchar(50) PRIMARY KEY,password varchar(50),dateTime timestamp)")
dt=datetime.now()
query.exec_("INSERT INTO <b>test4</b> VALUES('abc@wdc.com','abc1',<b>'{}'</b>".format(dt))

考虑到上面将使用 datetime 对象的自然字符串表示:

2020-11-12 14:32:13.471729

这需要变量周围的引号,否则日期和时间之间的space将被解释为文字查询space(使用分隔命令),导致错误。您甚至可以使用 isoformat() for a more standardized representation, allowing further reconversion to datetime objects using fromisoformat().