数据库中通过Local时间获取UTC时间
在做国际化项目是,通常需要考虑时区的影响。在数据库中一般会存入UTC时间,在后端代码中获取UTC时间都很简单,但是在数据库呢?下面是在数据库中获取UTC时间的一个存储过程,传入的是local时间。
CREATE FUNCTION [dbo].[fnGetUTCTime]
(
@pTime datetime
)
RETURNS datetime
AS
BEGIN
DECLARE @vTimeZone nvarchar(100)
EXEC MASTER.dbo.xp_regread 'HKEY_LOCAL_MACHINE',
'SYSTEM\CurrentControlSet\Control\TimeZoneInformation',
'TimeZoneKeyName',@vTimeZone OUT
DECLARE @vzonetime datetime
SELECT @vzonetime = (@pTime AT TIME ZONE @vTimeZone AT TIME ZONE 'UTC')
RETURN @vzonetime
END

浙公网安备 33010602011771号