Предупреждение: (1265, «Данные для столбца« Дата »в строке 1 усечены»)

Я использую python3 для вставки нескольких значений в базу данных mysql. Мне нужно ввести имя, затем три столбца с числовыми значениями (около 15-значных чисел), а затем еще один столбец с датой.

Ниже мой код на Python.

today = datetime.date.today()
datestr = str(today.month)+"/"+str(today.day)+"/"+str(today.year)

connection = pymysql.connect(host='localhost', user='root', password='', db='testdb')

for item in resp['result']:
    data = (item['name'], item['numberone'], item['numbertwo'], item['numberthree'], item['numberfour'], datestr)
    cursor = connection.cursor()
    sql = ('INSERT INTO testdb.testtable (`Name`, `Col1`, `Col2`, `Col3`, `Col4`, `Date`) VALUES (%s, %s, %s, %s, %s, %s)')
    cursor.execute(sql, data)


connection.close()

Но я получаю ошибку ниже.

Python36\lib\site-packages\pymysql\cursors.py:165: Warning: (1265, "Data truncated for column 'Date' at row 1")
result = self._query(query)
[Finished in 0.7s]

если я распечатаю переменные данные внутри цикла. Я получаю следующий результат. Это просто, чтобы показать вам тип данных, которые я пытаюсь вставить в таблицу.

('Myname', 169324790808576, 167102568398848, 2222222409728, 2222222409728, '4/30/2018')

Я хотел бы вставить все эти значения в базу данных mysql, включая дату. Я получаю ошибку напротив даты. Благодарю за помощь в решении этой проблемы.

MySQL следует этим общим форматам даты yyyy-mm-dd или yyyy / mm / dd, а не mm / dd / yyyy, предполагая, что столбец Date имеет тип данных date .. небольшая демонстрация sqlfiddle.com/#!9/96e79f

Raymond Nijland 30.04.2018 13:28

Идеально!. Ты прав. Это исправило ошибку. Большое спасибо! :)

Sudhi 30.04.2018 13:37

@RaymonNijland Небольшой дополнительный вопрос. Теперь кажется, что код работает без ошибок. Но все же я не вижу, чтобы дата вводилась в базу данных с помощью команды Insert. Вы знаете, в чем может быть причина. Никаких изменений в коде сверху. Только последовательность дат была изменена на основе вашего предыдущего комментария.

Sudhi 30.04.2018 13:42

@RaymondNijland Не беспокойтесь. Я сам исправил ошибку. Я пропустил функцию connection.commit (), которая должна быть написана в конце цикла for, обновляющего значения в db. В любом случае спасибо! :)

Sudhi 30.04.2018 14:35
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
3 841
0

Другие вопросы по теме