如何解决使用QSqlQuery将当前时间添加到表中?
下面无法将当前时间添加到test4表的dateTime中,如何修改?
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',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对象的自然字符串表示形式:
2020-11-12 14:32:13.471729
这需要在变量周围加上引号,否则日期和时间之间的空格将被解释为文字查询 space (用于单独的命令),从而导致错误。您甚至可以将isoformat()
用于更标准化的表示形式,从而允许使用fromisoformat()
进一步转换为日期时间对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。