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