2008-10-09 17 views

Respuesta

85

CURRENT_TIMESTAMP es ANSI SQL estándar, y en teoría es una pequeña isla pequeña de 'no es necesario cambiar' entre sus miles de líneas de SQL específicas de SQL Server si alguna vez necesita mover las bases de datos ....

+5

También puede usar '{fn now()}' de manera equivalente si quiere ir a * really * old-school. – brianary

8

Books Online nos dice que CURRENT_TIMESTAMP "es equivalente a GETDATE()".

28

CURRENT_TIMESTAMP es parte de la especificación ANSI SQL. GETDATE() es una función específica de SQL Server heredada del código original de Sybase en el que se basa SQL Server.

Sin embargo, hacen exactamente lo mismo.

9

Mi voto es para CURRENT_TIMESTAMP por razones de "portabilidad", es decir, ¿por qué ser SQL Server -específico cuando hay un equivalente directo de SQL-92?

PD ¿Por qué no se llamó getdatetime()? Ahora que SQL Server 2008 tiene un tipo de datos DATE y TIME, podemos esperar obtener soporte para SQL-92 CURRENT_DATE y CURRENT_TIME, en cuyo punto getdate() podría ser aún más confuso.

Cuestiones relacionadas