У меня возникли проблемы с изменением таблицы sql, содержащей дату.Перезапись datetime в mysql
Это код, который я бегу:
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 является NULL, это работает без проблем. Если есть дата вставляется в поле, я получаю следующее сообщение об ошибке:
"FUNCTION datetime.datetime does not exist."
Когда я смотрю на результаты SQL SELECT запроса, значение столбца дата преобразуется в следующее:
datetime.datetime(2016, 8, 16, 11, 24, 4)
Я предполагаю, что это вещь python, а не вещь sql. Я не должен был все равно преобразовать это в формат, который будет понимать sql.
Делая одно заявление в то время, внутри транзакции, вероятно, менее грязный, чем этот подход несколько запросов. – tadman
Вам нужно «str' все элементы в первом наборе« результатов ». –