UTC日期到CST日期

问题描述 投票:0回答:1

我需要帮助将保存为bigint号1538397000000的UTC日期转换为CST日期时间。我努力了

       select 
        Dateadd(s,convert(Bigint,1538397000000/1000,convert(datetime,'1-1-1970'))
tsql
1个回答
1
投票

您可以创建将UTC转换为本地时间的功能。假设您的上述代码正确地将bigint转换为正确的UTC日期/时间值,则以下内容将该值转换为CST。

create function UTCDateTimeToLocal(@value datetime) returns datetime as
begin
  declare @utc datetime = getutcdate()
         ,@local datetime = getdate()
         ,@diff int
         ,@rtn datetime

  set @diff = datediff(millisecond, @utc, @local)
  set @rtn = dateadd(millisecond, @diff, @value)

  return @rtn
end
go

select dbo.UTCDateTimeToLocal(dateadd(s,cast(1538397000000/1000 as bigint),convert(datetime,'1-1-1970')))

--drop function UTCDateTimeToLocal
© www.soinside.com 2019 - 2024. All rights reserved.