我正在保存一个TimeSpan
(来自.NET)我的数据库中的值为BIGINT
在 SQL Server 中(保存 Ticks 属性)。我想知道如何转换这个BIGINT
值对一个DATETIME
SQL Server 中的值(不是 .NET 中的值)。有任何想法吗?
Cheers
EDIT:
我正在使用 NHibernate 来映射TimeSpan
我拥有的属性,并且它保留了 Ticks 属性。我用它来控制某个日期的相对小时(或分钟)。
在系统内部一切都很好,不需要这种转换。然而,在 SQL Server 中执行随机查询时,很难理解数据的持久化形式。TimeSpan
。所以,我传递的函数Ticks
值和一个DateTime
返回的值将给出以小时、分钟和秒为单位的金额TimeSpan
代表。
我不太了解 SQL Server,但今天我的一位同事遇到了同样的问题,我think我找到了这样的解决方案:
CAST(([ticks] - 599266080000000000) / 10000000 / 60 / 60 / 24 AS datetime)
其中 599266080000000000 是 01/01/1900 00:00:00 UTC 的刻度值,10000000 是每秒的刻度数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)