长整型转为日期
CREATE FUNCTION F_LocalDatetime64( @milliSecond bigint) returns datetime2 as begindeclare @result datetime2;declare @second bigint;declare @milli bigint;if len(@milliSecond)= 13 begin-- 以毫秒级的长整型转为 日期set @second = cast( @milliSecond/1000 as int );select @RESULT = DATEADD(second,@Second,'1970-01-01') set @milli= substring( cast(@milliSecond as nvarchar(20) ),11,3)select @result = Dateadd(millisecond, @milli, @result)end;else if len(@milliSecond)= 10 select @RESULT = DATEADD(second,@MilliSecond,'1970-01-01') return(@result); end; -- drop FUNCTION F_LocalDatetime ; CREATE FUNCTION F_LocalDatetime( @Second bigint) returns datetime2 as begindeclare @result datetime2;select @RESULT = DATEADD(second,@Second ,'1970-01-01') return(@result); end; select convert( datetime2,17418960003, 121)-- 1741795200 :,'2025-03-13 20:00:00' select DATEADD(second,1741795200,'1970-01-01') , DBO.F_LocalDatetime(1741795200) AS DATE_TIMEselect dbo.F_LocalDatetime64(1741795200234) as [datetime2] -- 返回: '2025-03-12 16:00:00.2340000'