当我尝试将我的CSV文件导入MySQL时,所有日期都变为0000-00-00
。
CSV日期格式为DD/MM/YYYY
,就像2016年11月16日一样。
MySQL格式为:YYYY/MM/DD
。我正在使用phpmyadmin导入它。如何解决这个日期转移?
答案 0 :(得分:0)
我认为,您需要在添加到MYSQL数据库之前更改日期格式。
$old_date = date('dd/mm/yyyy');
$middle = strtotime($old_date);
$new_date = date('yyyy/mm/dd', $middle);
答案 1 :(得分:0)
格式DD/MM/YYYY
不是MySQL中的有效日期。您可以使用LOAD DATA
和STR_TO_DATE
将日期字符串解析为MySQL可以识别的实际日期:
LOAD DATA INFILE 'path/to/file.csv'
INTO TABLE yourTable FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'
(
col1, col2, @var1, col4
)
SET date_col = STR_TO_DATE(@var1, '%d/%m/%Y')
以上假设您的表有4列,而您从CSV文件中读取的第三列是麻烦的日期。这里的技巧是每个日期字符串将被动态映射到有效的日期类型,为您留下您想要的结果。