在SQL Server中将日期转换为刻度值

6

有人知道如何在SQL Server中将DATETIME列转换为TICKS吗?


为什么不在.NET代码中完成(这样更容易)? - Richard
因为我在数据库中有一些记录,我需要通过一个单一查询从MSSQL将它们转换。 - FinalDestiny
你能否提供更多关于为什么需要在SQL Server中进行此转换的细节? - Thomas
1个回答

8
如果你想让t-sql将一个值转换为ticks,并与在.NET中创建的“相同”值进行比较,那么这是行不通的。 SQL Server中的DateTime数据类型只有约.003秒(实际上值会四舍五入为.000、.003或.007)或10-3的精度,而.NET中的DateTime数据类型具有100纳秒(10-7)的精度。

2
SQL Server 2008 中的 datetime2 可以在一定程度上解决这个问题。 - gbn
@gbn - 其实不是这样的。如果您将.NET中的值存储到DateTime2(7)中,由于额外的精度,您可以获得1:1的匹配。但是我不太确定在DateDiff的限制下如何计算等效的Ticks值。 - Thomas
2
@gbn - 实际上,在对其进行调整时,有一种方法可以计算DateTime2(7)的刻度,以获得与.NET的Ticks属性相当的结果。由于无法使用DateDiff,因此这有点复杂,但是确实是可能的。 - Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接