首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# SQL Server 2008 DATETIME2列

问C# SQL Server 2008 DATETIME2列
EN

Stack Overflow用户
提问于 2011-04-12 22:57:32
回答 1查看 1K关注 0票数 2

如何通过LINQ使用DATETIME2列在C#中工作,并获得微秒级分辨率?现在,即使服务器数据类型设置为DATETIME2,我的LINQ对象也有一个DateTime字段,它似乎不能处理微秒。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-12 23:21:51

即使DATETIME2能处理微秒,.NET 4也不能。如果需要专门处理微秒,则可以使用SQL Server中的过程,而无需通过应用程序读取值。

.NET参考中说:

值的小数部分是毫秒的小数部分。例如,4.5相当于4毫秒加5000个刻度,其中1毫秒= 10000个刻度。

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5637301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档