使用 T-SQL 将 DateTime 转换为 .NET Ticks






3.59/5 (17投票s)
2003年12月29日

169170

2868
使用 T-SQL 用户定义函数将 datetime 值转换为与 .NET 兼容的 Ticks。对于 .NET 和非托管环境(如 ASP 和 VB6)之间的互操作很有用。
引言
.NET Framework 提供了一种简单的 long
表示形式来表示 datetime,称为 Ticks
。 给定的 ticks 值是自 0001 年 1 月 1 日中午 12:00 以来经过的 100 纳秒间隔数。 非托管组件可能需要使用 ticks 与 .NET 组件交互。 本文介绍了一个简单的 T-SQL 用户定义函数,用于将 datetime 值转换为 ticks。
背景
非托管语言通常将 datetime 值作为 OLE 自动化日期 (OADate) 公开。 OLE 自动化日期实现为浮点数,其值是自 1999 年 12 月 30 日午夜起的的天数。 在 32 位系统中,Ticks 表示形式比 OADate 表示形式具有更高的保真度。 因此,应在 SQL Server 内部将给定的 datetime 值转换为 Ticks,而不是在非托管应用程序代码中进行转换。
使用代码
在 SQL Server 数据库上创建本文提供的用户定义函数。 在查询、视图和存储过程中根据需要使用 dbo.DateTimeToTicks
函数。
DECLARE @TestDate datetime
SET @TestDate = GetDate()
select @TestDate, dbo.DateTimeToTicks(@TestDate)
兴趣点
有关 .NET Framework DateTime 结构的更多信息,请参阅此处。 关于 Ticks 和 OADates 的文档请参阅此处和此处。
历史
- 版本 1.0