Как преобразовать формат даты «дд/мм/гг» в «гг/мм/дд» для вставки в базу данных mysql?

Когда я вставляю дату из файла в формате «дд/мм/гг» в таблицу моей базы данных с датой в формате «гг/мм/дд», дата неверна:

Вместо 2019:04:11 я получаю 2011:04:19.

Я хочу сохранить формат базы данных ("гг/мм/дд")

Я пытался:

фактическая дата = DATE_FORMAT(j[0], '%y-%m-%d')

cursor.execute (фактическая дата)

но он сообщает мне об ошибке: имя «DATE_FORMAT» не определено

import mysql.connector
sql = mysql.connector.connect(host='',user='',password='',db='')

cursor = sql.cursor()
f = open("C:\Cumulus\data\Apr19log.txt","r")

st=[i.strip().split(',') for i in f.readlines()]

actualdate = DATE_FORMAT(j[0], '%y-%m-%d')  
cursor.execute(actualdate)

sqllist = "INSERT INTO station_fenelon (variable, date, time,             
outside_temp, outside_humidity) VALUES (%s, %s, %s, %s, %s)"
record = [(i+1, j[0], j[1], j[2], j[3]) for i, j in enumerate(st)]
cursor.executemany(sqllist, record)
sql.commit()

ошибка: имя 'DATE_FORMAT' не определено

DATE_FORMAT() - это функция MySQL, и вы вызываете ее непосредственно в своем скрипте Python, поэтому вы получаете сообщение об ошибке, которое не определено....

George Pant 30.05.2019 13:18

@George Pant Я отредактировал это. Это то, что вы имели в виду?

John 30.05.2019 13:25
Почему в 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
2
652
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

DATE_FORMAT() — это функция MySQL, и вы вызываете ее непосредственно в своем скрипте Python, поэтому вы получаете сообщение об ошибке, которое не определено. Вам следует удалить эту строку.

Вы можете использовать STR_TO_DATE для преобразования строки в дату

sqllist = "INSERT INTO station_fenelon (variable, date, time,             
outside_temp, outside_humidity) VALUES (%s, STR_TO_DATE(%s,'%d/%m/%Y'), %s, %s, %s)"

Спасибо за помощь, но я все еще получаю сообщение об ошибке: Неверное значение даты и времени: «04.11.19» для функции str_to_date @George Pant

John 30.05.2019 14:02

@John, я не знаю, как эта библиотека в python заменяет строки в вашем запросе. В mysql используется формат STR_TO_DATE('yourdate','%d/%m/%Y'), поэтому вы должны создать строку запроса в этом формате. .Я заменил запрос, вы можете попробовать еще раз.

George Pant 30.05.2019 14:28

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