【问题标题】:Importing dates to mysql by csv file problem通过csv文件问题将日期导入mysql
【发布时间】:2019-03-14 01:09:24
【问题描述】:

我希望有人能快速回答我的问题,因为我在 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);

谢谢

【问题讨论】:

  • 您需要格式化您的日期。我没有看到任何导入,只有 INSERT。
  • MySQL 接受 Y-m-d 日期格式,因此您需要将 CSV 日期格式转换为 MySQL 日期格式,然后将其插入数据库。
  • 我尝试了 STR_TO_DATE(@date_conv, '%Y/%m/%d') 方法,但它也不起作用,认为我做错了什么
  • 能否请您提及您的日期栏名称,以便我为您提供帮助。
  • 我的表结构:Naam、personeelsnummer、manager、functie、afdeling、contract、DID、DUD、profiel。日期需要导入 DID 和 DUD

标签: php mysql csv import


【解决方案1】:

而不是这个

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'))

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-07-21
        • 2015-06-10
        • 2016-05-07
        • 1970-01-01
        • 2017-03-03
        • 1970-01-01
        • 2015-06-14
        • 2013-03-13
        • 1970-01-01
        相关资源
        最近更新 更多