SYSUTCDATETIME()
y GETUTCDATE()
Hay dos funciones de fecha/hora de T-SQL disponibles para su uso en SQL Server. Estas funciones devuelven la fecha y la hora del equipo en el que se ejecuta la instancia de SQL Server. Ambas funciones devuelven la fecha y la hora como hora UTC (hora universal coordinada).
Entonces, ambas funciones hacen lo mismo. Casi.
Así es como difieren estas dos funciones:
GETUTCDATE()
devuelve su valor como datetime valor.SYSUTCDATETIME()
devuelve su valor como datetime2 valor.
Esto significa que SYSUTCDATETIME()
proporciona más segundos de precisión. La fechahora2 el tipo de datos también tiene un rango mayor que datetime .
Ejemplo
Aquí hay un ejemplo para demostrar el valor devuelto por cada función:
SELECT GETUTCDATE() AS GETUTCDATE, SYSUTCDATETIME() AS SYSUTCDATETIME;
Resultado:
+-------------------------+-----------------------------+ | GETUTCDATE | SYSUTCDATETIME | |-------------------------+-----------------------------| | 2018-06-13 11:04:55.237 | 2018-06-13 11:04:55.2396676 | +-------------------------+-----------------------------+
Así que esto es similar a la diferencia entre SYSDATETIME()
y GETDATE()
.
¿Cuál debo usar?
Microsoft recomienda que usemos datetime2 con nuestros valores de fecha/hora. Este tipo de datos se alinea con el estándar SQL y es más portátil que datetime .
Por lo tanto, use SYSUTCDATETIME()
a menos que tenga una razón específica para no hacerlo.