使用 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()
.
下面无法将当前时间添加到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()
.