65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.59/5 (17投票s)

2003年12月29日

viewsIcon

169170

downloadIcon

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
© . All rights reserved.