CSV到Mysql插入datetime

时间:2017-05-25 06:50:00

标签: php mysql csv datetime

我有CSV文件,我想要将CSV行插入Mysql数据库。 当我插入" 23.05.17 17:53:25"在START DATE(格式日期时间)列中从CSV到DB,我得到2023-25-17 17:53:25。

我如何转换它,在DB上获取正确的日期格式2017-05-23 17:53:25

T`hanks

2 个答案:

答案 0 :(得分:1)

它可能不是一个正统的解决方案,但您可以简单地解析输入字符串并以mysql期望的格式重新创建日期时间。

using System.IO;
var filePath = Path.GetTempFileName();
foreach (var formFile in Request.Form.Files)
{
   if (formFile.Length > 0)
   {
      using (var inputStream = new FileStream(filePath, FileMode.Create))
      {
         // read file to stream
         await formFile.CopyToAsync(inputStream);
         // stream to byte array
         byte[] array = new byte[inputStream.Length];
         inputStream.Seek(0, SeekOrigin.Begin);
         inputStream.Read(array, 0, array.Length);
         // get file name
         string fName = formFile.FileName;
      }
   }
}

最好添加一些输入验证,但如果您正在做的是数据导入脚本,那就没问题。

答案 1 :(得分:0)

你应该使用STR_TO_DATE mysql函数:

mysql> SELECT STR_TO_DATE('23.05.17 17:53:25', '%d.%m.%y %H:%i:%s');

结果:

  

2017-05-23 17:53:25

您甚至可以使用紧凑形式的时间字段%T

mysql> SELECT STR_TO_DATE('23.05.17 17:53:25', '%d.%m.%y %T');

结果:

  

2017-05-23 17:53:25