我有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
答案 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