数据库中通过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
posted @ 2024-08-14 09:54  降虎  阅读(42)  评论(0)    收藏  举报