C#中的DateTime和SQL Server中的DateTime之间有什么区别吗?

时间:2009-07-25 09:03:43

标签: c# sql-server datetime

c#中的DateTime和SQL Server中的DateTime之间有什么区别吗?

3 个答案:

答案 0 :(得分:20)

精确度和范围(所以,一切都很重要;-p)

来自MSDN:

.NET System.DateTime

  

日期时间值类型表示日期和时间,值范围为1月1日午夜1点00分,Anno Domini(公共时代),公元9999年12月31日晚上11:59:59      

时间值以称为刻度线的100纳秒单位测量,特定日期是自格里高利历日历日历中0001年1月1日午夜12点(格林威治标准时间)午夜12点起的刻度数

Transact SQL datetime

  

日期范围:1753年1月1日至9999年12月31日

     

准确度:舍入为.000,.003或.007秒的增量

答案 1 :(得分:11)

您也可以使用SQL Server 2008的datetime2。精度也是100ns。实际上,它是为了匹配.NET DateTime精度而引入的。

datetime2 (Transact-SQL)

答案 2 :(得分:6)

SQL日期时间类型的C#等效项为SqlDateTime

因此,定义SQL调用(当然使用参数集合存储过程)以使用SQLDateTime。优点是您可以捕获构建命令的任何溢出或超出范围的错误,而不是从数据库引擎执行时捕获。