我正在从 Excel 读取值并将读取的行插入 SQL,但我遇到了日期列的问题。
在 Excel 中,我将日期读取为23-08-2011 01:33:01
,但在数据库中,这些值存储为2011-08-22 10:21:18.000
。
有没有办法可以在 C#(而不是 T-SQL)中将我正在阅读的日期转换为yyyy-mm-dd 00:00:00:000
格式?我想转换23-08-2011 01:33:01
为2011-08-23 00:00:00:000
.
DateTime
对象DateTime.ParseExact
DateTime
为 SQL 格式。String.Format
有关如何创建 DateTime 格式字符串的指南,请参阅这两个资源:
DateTime excel = DateTime.ParseExact("23-08-2011 01:33:01", "dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture);
String sqlString = String.Format("{0:yyyy-MM-dd hh:mm:ss:ffff}", excel);
string dateString = "23-08-2011 01:33:01";
string format = "dd-MM-yyyy hh:mm:ss";
DateTime date = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);
string again = date.ToString("yyyy-MM-dd 00:00:00:000");
使用ParseExact
方法从DateTime
DateTime parsedDate = DateTime.ParseExact("23-08-2011 01:33:01",
"dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture);
根据您插入记录的方式,您应该能够使用 DateTime 对象,否则您可以将其存储为字符串:
string sqlDate = parsedDate.ToString("yyyy-mm-dd hh:mm:ss:fff");