GMT e datetime

Quando você está trabalhando em diversas zonas de tempo, você precisa salvar os valores
dos dados em um formato padrão – o mais obvio é começar pelo GMT. O seguinte procedimento
converte o datetime em GMT e recupera dados no datetime atual do PC.
 /*Converte Datetime para GMT*/ CREATE PROCEDURE [dbo].[Convert_DateTime_to_GMT]
@dt_Date_Time as datetime
AS
select DATEADD ( hh ,  (DATEDIFF ( hh , GetDate(), GetUTCDate() )) , @dt_Date_Time )
GO/*Converte GMT para Datetime*/CREATE PROCEDURE [dbo].[Convert_GMT_to_DateTime]
@dt_GMT as datetime
AS
select DATEADD ( hh ,  (DATEDIFF ( hh , GetUTCDate(),GetDate() )) , @dt_GMT )
GO

Agora veja um exemplo de uso:

declare @dt  nvarchar(20)
Select  @dt =  cast('2003/10/12 13:12' as datetime)
exec Convert_GMT_to_DateTime @dt