Когда я вставляю дату из файла в формате «дд/мм/гг» в таблицу моей базы данных с датой в формате «гг/мм/дд», дата неверна:
Вместо 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' не определено
@George Pant Я отредактировал это. Это то, что вы имели в виду?
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, я не знаю, как эта библиотека в python заменяет строки в вашем запросе. В mysql используется формат STR_TO_DATE('yourdate','%d/%m/%Y'), поэтому вы должны создать строку запроса в этом формате. .Я заменил запрос, вы можете попробовать еще раз.
DATE_FORMAT() - это функция MySQL, и вы вызываете ее непосредственно в своем скрипте Python, поэтому вы получаете сообщение об ошибке, которое не определено....