jueves, 20 de septiembre de 2018

Función SQL para convertir fecha UTC a cualquier Time Zone definido



CREATE FUNCTION [fun_ConvertUTCToDateTimeZone](@datetimeUTC datetime, @TimeZoneToConvert nvarchar(60))
RETURNS datetime
AS
BEGIN
       declare @fechaReturn datetime

       set @fechaReturn = (SELECT CONVERT(datetime,@datetimeUTC)
    AT TIME ZONE 'UTC'
       AT TIME ZONE @TimeZoneToConvert);

       Return @fechaReturn
END;



Ejemplo


Conocer TimeZone de Instancia de SQL


DECLARE @TimeZone VARCHAR(50)
EXEC MASTER.dbo.xp_regread 'HKEY_LOCAL_MACHINE',
'SYSTEM\CurrentControlSet\Control\TimeZoneInformation',
'TimeZoneKeyName',@TimeZone OUT

SELECT @TimeZone