2011-04-12 91 views
2

如何使用C#與DATETIME2列通過LINQ並獲得微秒的分辨率?現在,即使將服務器數據類型設置爲DATETIME2,我的LINQ對象也有一個DateTime字段,它似乎不涉及微秒。C#SQL Server 2008 DATETIME2列

回答

2

即使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) 

編號:DateTime.AddMilliseconds Method

+0

這就是我之類的預期,但我想確認。謝謝您的幫助。 – Nik 2011-04-12 15:29:26

+0

非常歡迎:) – 2011-04-12 15:46:51