用ODO python包日期错误1292将CSV加载到MySQL表中

2024-09-27 23:52:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个简单的CSV文件从Quandl下载到一个带有odo python包的MySQL表中

t = odo('C:\ProgramData\MySQL\MySQL Server 5.6\Uploads\WIKI_20160725.partial.csv', 'mysql+pymysql://' + self._sql._user+':'
            + self._sql._password +'@localhost/testDB::QUANDL_DATA_WIKI')

CSV中的第一行如下所示:

^{pr2}$

MySQL表定义如下:

Ticker varchar(255) NOT NULL,
Date date NOT NULL,
Open numeric(15,2) NULL,
High numeric(15,2) NULL,
Low numeric(15,2) NULL,
Close numeric(15,2) NULL,
Volume bigint NULL,
ExDividend numeric(15,2), 
SplitRatio int NULL,
OpenAdj numeric(15,2) NULL,
HighAdj numeric(15,2) NULL,
LowAdj numeric(15,2) NULL,
CloseAdj numeric(15,2) NULL,
VolumeAdj bigint NULL,
PRIMARY KEY(Ticker,Date)

它抛出异常1292,其中包含以下信息:

在sqlalchemy.exc.InternalError: (pymysql.err.InternalError)(1292,“不正确的日期值:'7/25/2016'(针对第1行的列'date')[SQL:'将数据INFILE%(path)s\n加载到表QUANDL_DATA_WIKI\n字符集%(encoding)s\n字段\n以%(分隔符)s结尾\n用%(quotechar)s括起来\n由%(escapechar)转义\n由%(lineterminator)终止的行\n IGNORE%(skiprows)s行\n'][参数:{'path':'C:\ProgramData\MySQL\MySQL Server 5.6\Uploads\WIKI_。部分.csv“,”quotechar“:”,“skiprows”:0,“lineterminator”:“\r\n”,“escapechar”:“\”,“分隔符”:“,”,“编码”:“utf8”}]

有人知道第一行的日期怎么了吗?它似乎与MySql数据库不匹配


Tags: csvselfsqldataserverwikimysqlnull
1条回答
网友
1楼 · 发布于 2024-09-27 23:52:05

mysql在日期转换方面存在问题。我注意到当我将日期字段定义为varchar时

Date varchar(255) NOT NULL

然后csv文件被正确读取

在my SQL中,字符串到日期格式的转换如下所示:

^{pr2}$

相关问题 更多 >

    热门问题