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

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

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

来自MSDN:

.NET System.DateTime

DateTime值类型表示日期和时间,其值范围为0001年1月1日午夜,00:00 Anno Domini(Common Era)到11:59:59 PM,12月31日,9999 AD(CE)

时间值以称为刻度线的100纳秒单位测量,特定日期是格里高利历日历日历中自公元0001年1月1日午夜12:00起的刻度数。

Transact SQL datetime

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

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

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

datetime2(Transact-SQL)

是。

SQL datetime类型的C#等价物是SqlDateTime

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