通过CSV文件将日期导入MySQL

时间:2018-10-09 09:42:24

标签: php mysql csv import

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

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

当我通过CSV导入mysql时,日期看起来像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);

谢谢

3 个答案:

答案 0 :(得分:0)

您没有指出日期字段是哪一列  在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'));

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

而不是这个

Class TestEntity
{
    public int EntityId { get; set; }
    public string EntityName { get; set; }
}

var list = new List<TestEntity>();

list.Add(new TestEntity { EntityId = 1, EntityName = "aaa" });
list.Add(new TestEntity { EntityId = 2, EntityName = "bbb" });

//Creating context on-demand with any available objects rather than external resources (database, file etc.)
var context = new DataContext(list); 

尝试一下

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

这应该工作。下面提到示例Sql查询。

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