我希望有人能快速回答我的问题,因为我不太擅长PHP和MySQL。
我想导入一个包含 2 个日期的 CSV 文件:1-5-2017
和31-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
您可以使用函数strtotime
和date
来转换此日期格式
像下面的代码
$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'))