通过 csv 文件问题将日期导入 mysql



我希望有人能快速回答我的问题,因为我不太擅长PHP和MySQL。

我想导入一个包含 2 个日期的 CSV 文件:1-5-201731-5-2018

当我通过 mysql 导入 csv 时,日期看起来像0000-00-00

我的代码:

while (($column = fgetcsv($file, 10000, ";")) !== FALSE) {
$sqlInsert = "INSERT into employees (naam,functie,afdeling,contract,DID,DUD,manager,profiel)
values ('" . $column[0] . "','" . $column[1] . "','" . $column[2] . "','" . $column[3] . "','" . $column[4] . "', '" . $column[5] . "','" . $column[6] . "','" . $column[7] . "')";
$result = mysqli_query($conn, $sqlInsert);

谢谢

您没有指出哪一列是日期字段 在naam,functie,afdeling,contract,DID,DUD,manager,profiel您可以使用函数strtotimedate来转换此日期格式

像下面的代码

$column[2] = date('Y-m-d', strtotime($column[2]));

例如

// this will print 2017-05-01
echo date('Y-m-d', strtotime('1-5-2017'));

使用以下代码转换日期格式

$date="1-5-2017";
$convertedDate=date("Y-m-d", strtotime($date));

而不是这个

STR_TO_DATE('15-06-2017', '%Y/%m/%d')

试试这个

STR_TO_DATE('15-06-2017', '%Y-%m-%d')

这应该有效。下面提到了示例 SQL 查询。

INSERT INTO `table1` (`col1`, `col2`, `col3`, `col4`) VALUES ('1', '1', '1',STR_TO_DATE('15-06-2017','%Y-%m-%d'))

最新更新