将 .NET 刻度转换为 SQL Server DateTime

2023-12-06

我正在保存一个TimeSpan(来自.NET)我的数据库中的值为BIGINT在 SQL Server 中(保存 Ticks 属性)。我想知道如何转换这个BIGINT值对一个DATETIMESQL 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(使用前将#替换为@)

将 .NET 刻度转换为 SQL Server DateTime 的相关文章

随机推荐