Para obtener la fecha del sistema podemos utilizar las funciones GETDATE() o SYSDATETIME() de SQL server.
La pregunta es cual es la diferencia entre ellas…
Para obtener la respuesta ejecutamos la siguiente consulta:
SELECT GETDATE() 'GETDATE', SYSDATETIME() 'SYSDATETIME'
El resultado:
GETDATE SYSDATETIME 2012-05-14 18:05:04.720 2012-05-14 18:05:04.7232705
Entonces… ¿cuál es la diferencia?
Cuando utilizamos GETDATE la precisión se limita a milisegundos mientras que la precisión de SYSDATETIME llega hasta nanosegundos (¡CHAN!)
SYSDATETIME() es importante cuando se utiliza el tipo de datos DATETIME2 y por lo tanto la diferencia entre las funciones mencionadas es impostante al necesitar una mayor precisión.
Conclusión
Realmente no hay razón para continuar usando GETDATE. A partir de SQL 2008 es recomendado el uso de SYSDATETIME para recuperar la fecha y/u hora. (no vaya a ser que alguien descontinúe GETDATE ;P)
Saludos,
