当我将格式为“ dd / mm / yy”的文件中的日期插入日期为“ yy / mm / dd”的数据库表中时,日期是错误的:
我得到了2011:04:19而不是2019:04:11。
我要保留数据库格式(“ yy / mm / dd”)
我尝试过:
actualdate = 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'未定义
答案 0 :(得分: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)"