我正在从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
。
答案 0 :(得分:3)
DateTime
DateTime.ParseExact
个对象
DateTime
和相应的格式字符串将String.Format
对象格式化为SQL格式。有关如何创建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");