如何在.net应用程序中使用SQL Server时间数据types?

有谁知道如何使用c#.net应用程序中的SQL Server 2008中引入的时间数据types? 我一直试图让它工作,但没有成功。

以下是MSDN文章 ,其中回顾了SQL Server 2008中引入的有关ADO.NET的所有新date和时间数据types。 正如文档所说:对于System.Data.DbType.Time您将使用.NET FrameworktypesSystem.TimeSpan

即使是来自微软的人也倾向于build议将sql数据types的时间映射到System.Timestamp,我不会推荐这样做,

因为sql时间的范围是00:00:00.0000000 – 23:59:59.9999999

System.TimeSpan的范围是10675199.02:48:05.4775808 – 10675199.02:48:05.4775807

这只是稍有不同,并可能导致令人讨厌的运行时超出范围的错误。

我想你可以使用TimeSpan数据types来达到你的目的。 这篇文章解释了ado.net中Time数据types的使用

你如何访问数据? 使用entity framework,存储过程等
如果必须传递date的string表示forms,请确保以“yyyy-mm-dd hh:mm:ss”的格式进行操作,否则将运行dd / mm / yyyy vs mm / dd / yyyy混乱。 如果你正在使用entity framework或数据集,那么你应该只传递一个DataTime实例的参数,例如DateTime.Now

您可以使用类似于以下语句的数据读取器来读取它。

 TimeSpan time = dr.GetTimeSpan(dr.GetOrdinal(“Time7FieldName”));