2013-02-22 71 views
1

我需要转换一个零字符串说“00000000”为日期,并在数据库中插入,但我不能使用C#如何插入零日期?

Date.ParseExact("00000000","yyyymmdd",null); 

还与CultureInfo.InvariantCulture

收到以下异常尝试:

的在日历System.Globalization.GregorianCalendar中不支持该字符串表示的DateTime。

+6

没有00-00-0000日期。最短日期是01-01-0001。 – 2013-02-22 08:59:21

+1

Zeroary的零号发生了什么,0000?我认为他们经常更换日历。 [更严重的是:]在内部,'DateTime'从0001年1月1日开始计数,并且得到_ticks_ count为零的'DateTime',可以使用'default(DateTime)',它相当于'new DateTime )'。碰巧还存在一个“静态”字段,其值为“DateTime.MinValue”。数据库中的表示可能会有很大不同,具体取决于您使用的数据库。 – 2013-02-22 09:27:43

回答

7

不,因为有一个DateTime的最小值,那当然不是0.您可以使用一个可为空的DateTime并使您的字段在数据库中也是可以为空的。

要查看的最小值,你可以尝试一下本作学术目的:对可空类型

// Define an uninitialized date. 

DateTime date1 = new DateTime(); 
Console.Write(date1); 
if (date1.Equals(DateTime.MinValue)) 
Console.WriteLine(DateTime.MinValue.ToString() + " (Equals Date.MinValue)"); 
// The example displays the following output: 
// 1/1/0001 12:00:00 AM (Equals Date.MinValue) 

更多信息: http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx

+0

我想说刚才... – TGlatzer 2013-02-22 09:00:04

+0

总是有人这样更快:( – Evelie 2013-02-22 09:03:24

+0

即时通讯实际上通常慢 – Freeman 2013-02-22 09:04:15