我在修改包含日期的sql表时遇到了一些麻烦。在mysql中重写datetime
这是我运行代码:
import pymysql
cnx=pymysql.connect(dbstuff)
cursor=cnx.cursor()
cursor.execute("SELECT * FROM devices ORDER BY ip_addr,Port ASC")
results=cursor.fetchall()
lst = [(i,)+line[1:] for i, line in enumerate(results, 1)]
values = ', '.join(map(str,lst))
query="DELETE FROM devices; INSERT INTO devices VALUES {}".format(values)
query = query.replace("None","NULL")
cursor.execute(query)
cnx.commit()
cnx.close()
如果在SQL日期栏为空,这个运行没有问题。如果插入场的日期,我得到以下错误:
"FUNCTION datetime.datetime does not exist."
当我看着SQL SELECT查询的结果,日期列值转换为以下几点:
datetime.datetime(2016, 8, 16, 11, 24, 4)
我认为这是一个python的东西,而不是sql的东西。无论如何,我还没有找到将其转换为sql可以理解的格式。
在一个事务中一次做一个说法是比这个多查询方法可能不太凌乱。 – tadman
您需要'str'第一组“结果”中的所有项目。 –