我查看了有关STR_TO_DATE()的其他问题,它们的解决方案不适用于我的情况。我也阅读并在其他地方搜索无济于事。
我正在导入以下XML的许多行:
<Game>
<id>21</id>
<GameTitle>Final Fantasy XIII</GameTitle>
<ReleaseDate>03/09/2010</ReleaseDate>
</Game>
<Game>
<id>31</id>
<GameTitle>Heavenly Sword</GameTitle>
<ReleaseDate>09/12/2007</ReleaseDate>
</Game>
使用以下SQL语句:
USE test;
LOAD XML LOCAL INFILE 'C:\\xampp\\mysql\\data\\test.xml'
REPLACE
INTO TABLE games
ROWS IDENTIFIED BY '<Game>'
SET ReleaseDate = STR_TO_DATE(@ReleaseDate, '%c/%e/%Y');
GameTitle和ID可以完美导入。我尝试使用%m和%d并确保ReleaseDate列是DATE数据类型。所有行都在ReleaseDate列中写入NULL。
MySql正在返回
2466 row(s) affected, 64 warning(s): 1265 Data truncated for column 'ReleaseDate'
at row 1 1265
预先感谢您的帮助。StackOverflow可以解决我真正遇到的所有问题,而无需询问。
您需要为STR_TO_DATE使用的变量分配一些内容,例如
LOAD XML LOCAL INFILE 'C:\\xampp\\mysql\\data\\test.xml'
REPLACE
INTO TABLE games (id, GameTitle, @var1)
ROWS IDENTIFIED BY '<Game>'
SET ReleaseDate = STR_TO_DATE(@var1, '%c/%e/%Y');
请注意,在LOAD DATA的语法SET
中LOAD XML
描述了in的语法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句