SYSUTCDATETIME()
e GETUTCDATE()
são duas funções de data/hora T-SQL disponíveis para uso no SQL Server. Essas funções retornam a data e a hora do computador no qual a instância do SQL Server está sendo executada. Ambas as funções retornam a data e a hora como hora UTC (Coordinated Universal Time). Então, ambas as funções fazem a mesma coisa. Quase.
Veja como essas duas funções diferem:
GETUTCDATE()
retorna seu valor como um datetime valor.SYSUTCDATETIME()
retorna seu valor como um datetime2 valor.
Isso significa que
SYSUTCDATETIME()
fornece mais precisão de segundos. O datetime2 tipo de dados também tem um intervalo maior que datetime . Exemplo
Aqui está um exemplo para demonstrar o valor retornado por cada função:
SELECT GETUTCDATE() AS GETUTCDATE, SYSUTCDATETIME() AS SYSUTCDATETIME;
Resultado:
+-------------------------+-----------------------------+ | GETUTCDATE | SYSUTCDATETIME | |-------------------------+-----------------------------| | 2018-06-13 11:04:55.237 | 2018-06-13 11:04:55.2396676 | +-------------------------+-----------------------------+
Portanto, isso é semelhante à diferença entre
SYSDATETIME()
e GETDATE()
. Qual devo usar?
A Microsoft recomenda que usemos datetime2 com nossos valores de data/hora. Esse tipo de dados está alinhado com o padrão SQL e é mais portátil que datetime .
Portanto, use
SYSUTCDATETIME()
a menos que você tenha um motivo específico para não fazê-lo.