Python 是否使用QSqlQuery将当前时间添加到表中?

Python 是否使用QSqlQuery将当前时间添加到表中?,python,pyqt5,qsqlquery,Python,Pyqt5,Qsqlquery,下面无法将当前时间添加到test4表的dateTime中,如何修改 query.exec_("INSERT INTO test values('abc@wdc.com','abc1',dt")) 您不是在添加dt变量,而是在添加“dt”字符串 代码中还有另外两个问题:您导入了QSqlDatabase,但您使用的是QtSql.QSqlDatabase,并且您正在将值添加到test表中,而您创建的表是test4 from PyQt5.QtSql import QSqlDatab

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

query.exec_("INSERT INTO test values('abc@wdc.com','abc1',dt"))

您不是在添加
dt
变量,而是在添加“dt”字符串

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

from PyQt5.QtSql import QSqlDatabase, QSqlQuery
from datetime import datetime
database = 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 test4 VALUES('abc@wdc.com','abc1','{}'".format(dt))

这需要在变量周围加引号,否则日期和时间之间的空间将被解释为文本查询空间(用于分隔命令),从而导致错误。您甚至可以使用更标准化的表示形式,允许使用进一步重新转换为datetime对象。

感谢您指出问题的回复。实际上,我还在文件中写了“从PyQt5导入QtSql”,我把它们混在了一起。好的,请记住,混合来自相同模块的导入样式通常不是一个好主意:这没有任何好处,可能会导致混乱,同时也会使代码可读性降低,更加不连贯。您应该导入整个QtSql或其类。
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
from datetime import datetime
database = 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 test4 VALUES('abc@wdc.com','abc1','{}'".format(dt))
2020-11-12 14:32:13.471729