将datetime从excel格式转换为sql格式

时间:2013-09-19 16:42:05

标签: c# .net

我正在从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

3 个答案:

答案 0 :(得分:3)

  1. 使用DateTime
  2. 将Excel字符串解析为DateTime.ParseExact个对象
  3. 使用DateTime和相应的格式字符串将String.Format对象格式化为SQL格式。
  4. 有关如何创建DateTime格式字符串的指南,请参阅以下两个资源:

    Standard Date and Time Format Strings

    Custom Date and Time Format Strings

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

答案 1 :(得分:1)

使用DateTime

中的ParseExact方法
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");

答案 2 :(得分: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");