我在我的python脚本中有一部分需要在下面的mysql数据库示例中将一些数据插入到表中:
insert_data = "INSERT into test (test_date,test1,test2) values (%s,%s,%s)"
cur.execute(insert_data,(test_date,test1,test2))
db.commit()
db.close()
我有几个问题,这个语法有什么不对,怎么可能将VALUES更改为时间戳而不是字符串的%s?请注意,数据库中的列名与我脚本中变量中存储的数据相同。
感谢
答案 0 :(得分:10)
试试这个:
import MySQLdb
import time
import datetime
ts = time.time()
timestamp = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
conn = MySQLdb.connect(host= "localhost",
user="root",
passwd="newpassword",
db="db1")
x = conn.cursor()
try:
x.execute("""INSERT into test (test_date,test1,test2) values(%s,%s,%s)""",(timestamp,test1,test2))
conn.commit()
except:
conn.rollback()
conn.close()
答案 1 :(得分:6)
时间戳创建可以在一行中完成,不需要使用time.time(),只需:
from datetime import datetime
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
答案 2 :(得分:0)
只需使用数据库 NOW()
函数,例如
timestamp="NOW()"
insert_data = "INSERT into test (test_date,test1,test2) values (%s,%s,%s)"
cur.execute(insert_data,(test_date,test1,test2,timestamp))
db.commit()
db.close()