3

我正在从 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:012011-08-23 00:00:00:000.

4

3 回答 3

3
  1. 使用将Excel 字符串解析为DateTime对象DateTime.ParseExact
  2. 使用和适当的格式字符串将对象格式化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);
于 2013-09-19T16:44:00.917 回答
1
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");
于 2013-09-19T17:08:08.877 回答
1

使用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");
于 2013-09-19T16:46:50.640 回答