phpmyadmin CSV日期格式到MySQL日期格式

7cjasjjr  于 2022-11-09  发布在  PHP
关注(0)|答案(3)|浏览(233)

当我尝试将CSV文件导入MySQL时,所有日期都变成了0000-00-00
CSV日期格式为DD/MM/YYYY,如16/11/2016。
MySQL格式为:YYYY/MM/DD.我正在用phpmyadmin导入这个,这个日期转移怎么解决?

3yhwsihp

3yhwsihp1#

在MySQL中,格式DD/MM/YYYY不是有效的日期。您可以将LOAD DATASTR_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文件中阅读的第三列是有问题的日期。这里的技巧是每个日期字符串都将被动态Map到一个有效的日期类型,从而得到您想要的结果。

xxslljrj

xxslljrj2#

我认为,你需要改变日期格式之前,添加到MYSQL数据库。

$old_date = date('dd/mm/yyyy');            
$middle = strtotime($old_date);            
$new_date = date('yyyy/mm/dd', $middle);
3bygqnnd

3bygqnnd3#

另一个选择是使用CSV Lint plug-in for Notepad++。该插件可以检测csv文件中的数据类型,包括日期时间格式。您可以只选择“重新格式化”将所有DD/MM/YYYY值更改为YYYY/MM/DD
或者,也可以不使用LOAD DATA INFILE,而是使用一个菜单选项将csv文件转换为SQL插入脚本。

它将为csv文件中的每一行创建INSERT语句,每批1000条记录。另外,它还考虑了列数据类型和日期时间格式,并将自动将日期值转换为正确的SQL日期时间。

生成的SQL脚本还包含一个CREATE TABLE部分,其中每一列都具有正确的数据类型。

相关问题