2
如何使用C#与DATETIME2列通过LINQ并获得微秒的分辨率?现在,即使将服务器数据类型设置为DATETIME2,我的LINQ对象也有一个DateTime字段,它似乎不涉及微秒。C#SQL Server 2008 DATETIME2列
如何使用C#与DATETIME2列通过LINQ并获得微秒的分辨率?现在,即使将服务器数据类型设置为DATETIME2,我的LINQ对象也有一个DateTime字段,它似乎不涉及微秒。C#SQL Server 2008 DATETIME2列
即使DATETIME2处理微秒,.NET 4也不会。如果您需要专门处理几微秒,则可以在SQL Server中使用过程,而无需通过应用程序读取值。
的.NET参考表示:
的值的小数部分是一毫秒的 小数部分。例如,对于 示例,4.5等于4 毫秒和5000个滴答,其中一个 毫秒= 10000滴答。
string dateFormat = "MM/dd/yyyy hh:mm:ss.fffffff";
DateTime date1 = new DateTime(2010, 9, 8, 16, 0, 0);
Console.WriteLine("Original date: {0} ({1:N0} ticks)\n",
date1.ToString(dateFormat), date1.Ticks);
DateTime date2 = date1.AddMilliseconds(1);
Console.WriteLine("Second date: {0} ({1:N0} ticks)",
date2.ToString(dateFormat), date2.Ticks);
Console.WriteLine("Difference between dates: {0} ({1:N0} ticks)\n",
date2 - date1, date2.Ticks - date1.Ticks);
DateTime date3 = date1.AddMilliseconds(1.5);
Console.WriteLine("Third date: {0} ({1:N0} ticks)",
date3.ToString(dateFormat), date3.Ticks);
Console.WriteLine("Difference between dates: {0} ({1:N0} ticks)",
date3 - date1, date3.Ticks - date1.Ticks);
// The example displays the following output:
// Original date: 09/08/2010 04:00:00.0000000 (634,195,584,000,000,000 ticks)
//
// Second date: 09/08/2010 04:00:00.0010000 (634,195,584,000,010,000 ticks)
// Difference between dates: 00:00:00.0010000 (10,000 ticks)
//
// Third date: 09/08/2010 04:00:00.0020000 (634,195,584,000,020,000 ticks)
// Difference between dates: 00:00:00.0020000 (20,000 ticks)
这就是我之类的预期,但我想确认。谢谢您的帮助。 – Nik 2011-04-12 15:29:26
非常欢迎:) – 2011-04-12 15:46:51