--function to convert ticks to DatetimeOffset
if object_id(N'GetTimeFromTicks', N'FN') is null
begin
execute dbo.sp_executesql @statement = N'
CREATE FUNCTION dbo.GetTimeFromTicks(@Ticks BIGINT)
RETURNS DATETIME
AS
BEGIN
DECLARE @Days BIGINT
DECLARE @DaysBefore1753 BIGINT
DECLARE @TimeTicks BIGINT
DECLARE @Seconds BIGINT
SET @Days = @Ticks / CONVERT(BIGINT,864000000000)
SET @DaysBefore1753 = CONVERT(BIGINT,639905)
SET @TimeTicks = @Ticks % CONVERT(BIGINT,864000000000)
SET @Seconds = @TimeTicks / CONVERT(BIGINT,10000000)
RETURN ToDateTimeOffSet(DATEADD(s,@Seconds,DATEADD(d,@Days - @DaysBefore1753,CONVERT(DATETIME,''1/1/1753''))), ''+00:00'')
END'
end
本文介绍了一个SQL函数,用于将ticks值转换为DatetimeOffset。该函数首先计算出从1753年1月1日至ticks所表示日期之间的天数,并通过ticks值计算秒数,最终使用这些值创建一个带有时区信息的日期时间。
1644

被折叠的 条评论
为什么被折叠?



