我查看了有关 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 已经解决了我真正遇到过的每一个问题,甚至不用问。