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

odi*_*seh 14 c# sql-server datetime

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

Mar*_*ell 20

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

来自MSDN:

.NET System.DateTime

DateTime值类型表示日期和时间,值范围为午夜12:00,1月1日,0001 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秒的增量

  • 还有时区方面 - 即使 DateTime 没有关联的时区,它*可以*知道它是“本地”还是UTC。 (2认同)

Use*_*ser 11

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

datetime2(Transact-SQL)


gbn*_*gbn 6

是.

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

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