No SQL Server, o transact-sql
SYSDATETIMEOFFSET()
a função retorna um datetimeoffset(7) valor que contém a data e hora do computador no qual a instância do SQL Server está sendo executada. Esse valor inclui o deslocamento de fuso horário. Exemplos de uso abaixo.
Sintaxe
A sintaxe fica assim:
SYSDATETIMEOFFSET ( )
Então você simplesmente chama a função sem nenhum argumento.
Exemplo
Segue um exemplo básico:
SELECT SYSDATETIMEOFFSET() AS Result;
Resultado:
Result ---------------------------------- 2018-06-17 09:55:27.3221853 +10:00
Extrair o deslocamento de fuso horário
Você pode usar o
DATEPART()
função para retornar o deslocamento de fuso horário. Esta função retorna um inteiro que representa o deslocamento do fuso horário em minutos. Exemplo:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', DATEPART(TZoffset, SYSDATETIMEOFFSET()) AS 'TZ Offset';
Resultado:
Date/time TZ Offset ---------------------------------- ----------- 2018-06-17 10:04:23.2316409 +10:00 600
Você também pode usar a função FORMAT() para retornar o deslocamento de fuso horário como uma string. Especificamente, você pode usar o
z
, zz
, e/ou zzz
argumentos para devolvê-lo no formato necessário. Exemplo:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', FORMAT(SYSDATETIMEOFFSET(), 'zz') AS 'zz', FORMAT(SYSDATETIMEOFFSET(), 'zzz') AS 'zzz';
Resultado:
Date/time zz zzz ---------------------------------- -------------- -------------- 2018-06-17 10:27:33.7314840 +10:00 +10 +10:00
Conversão do valor de retorno
Você também pode usar funções como
CONVERT()
para converter o valor de retorno em outro tipo de dados. Aqui está um exemplo em que eu converto em uma data valor e um tempo valor:SELECT CONVERT (date, SYSDATETIMEOFFSET()) AS 'Date', CONVERT (time, SYSDATETIMEOFFSET()) AS 'Time';
Resultado:
Date Time ---------- ---------------- 2018-06-17 10:08:29.6377947
Claro, uma vez que fazemos isso, perdemos o deslocamento de fuso horário.
Veja também
TODATETIMEOFFSET()
que permite obter um deslocamento de data e hora valor de um datetime2 expressão e SWITCHOFFSET()
que permite alterar um deslocamento de fuso horário.