2012-03-12 208 views
0

我想轉換日期時間。我不知道該怎麼做?它給出了錯誤。 nvarchar不會轉換爲日期時間。轉換日期時間

的startDate格式爲: 「11.03.2012」

我的表: STARTDATE日期時間 ENDDATE日期時間

public static int Insert(string startDate, string endDate) 
{ 

    Conn c = new Conn(); 
    SqlParameter[] prms = new SqlParameter[]{ 
    new SqlParameter("@STARTDATE", DateTime.ParseExact(startDate,"DD MM YYYY",null)), 
    new SqlParameter("@ENDDATE", DateTime.ParseExact(endDate,"DD MM YYYY",null)),   
    }; 

    return Convert.ToInt32(c.getObjectSP("sp_Insert", prms)); 
} 
+0

如果你已經知道的格式是什麼,你輸入進來的,爲什麼你用試圖解析它,當不同的面具?另外,什麼是康恩? – 2012-03-12 13:52:25

+0

你可以看看這裏。 http://stackoverflow.com/questions/425870/using-datetime-in-a-sqlparameter-for-stored-procedure-format-error – sinanakyazici 2012-03-12 13:53:51

+0

當你說「它給出錯誤」時,你應該發佈這些錯誤的細節。 – Oded 2012-03-12 14:01:02

回答

3

與被格式化像"11.03.2012"的日期,你需要分析.在你的格式字符串中。

DateTime.ParseExact(startDate,"dd.MM.yyyy",null) 

還要注意的是DDYYYY是在格式字符串作爲DATATIME的部分確定,但預計將文字字符。看我的例子 - dd爲2個字符的天,yyyy爲4個字符的一年。

2

這是一個關於它的好文章: http://www.csharp-examples.net/string-format-datetime/

// create date time 2008-03-09 16:05:07.123 
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123); 

String.Format("{0:y yy yyy yyyy}", dt); // "8 08 008 2008" year 
String.Format("{0:M MM MMM MMMM}", dt); // "3 03 Mar March" month 
String.Format("{0:d dd ddd dddd}", dt); // "9 09 Sun Sunday" day 
String.Format("{0:h hh H HH}",  dt); // "4 04 16 16"  hour 12/24 
String.Format("{0:m mm}",   dt); // "5 05"   minute 
String.Format("{0:s ss}",   dt); // "7 07"   second 
String.Format("{0:f ff fff ffff}", dt); // "1 12 123 1230" sec.fraction 
String.Format("{0:F FF FFF FFFF}", dt); // "1 12 123 123" without zeroes 
String.Format("{0:t tt}",   dt); // "P PM"   A.M. or P.M. 
String.Format("{0:z zz zzz}",  dt); // "-6 -06 -06:00" time zone 
+1

一篇不錯的文章和例子,但它並沒有真正回答這個問題。 – Oded 2012-03-12 14:05:09