¿SQL Server equivalente a MySQL NOW ()?

197

Soy un chico de MySQL que trabaja en un proyecto de SQL Server, tratando de obtener un campo de fecha y hora para mostrar la hora actual. En MySQL usaría NOW () pero no lo acepta.

INSERT INTO timelog (datetime_filed) VALUES (NOW())
Andrew G. Johnson
fuente

Respuestas:

215

getdate()o getutcdate().

Daniel Schaffer
fuente
74
getdate() 

es el equivalente directo, pero siempre debes usar las fechas UTC

getutcdate()

si su aplicación funciona en zonas horarias o no; de lo contrario, corre el riesgo de arruinar las matemáticas de la fecha en las transiciones de primavera / otoño

Steven A. Lowe
fuente
24

También puede usar CURRENT_TIMESTAMP, si tiene ganas de ser más compatible con ANSI (aunque si está transfiriendo código entre proveedores de bases de datos, esa será la menor de sus preocupaciones). Es exactamente lo mismo que GetDate()debajo de las cubiertas (vea esta pregunta para obtener más información al respecto).

Sin GetUTCDate()embargo, no existe un equivalente ANSI , que probablemente sea el que debería usar si su aplicación funciona en más de una zona horaria ...

Ian Varley
fuente
55
Me gusta CURRENT_TIMESTAMPporque funciona en MySQL, SQL Server, Oracle ... Como dijiste, es la menor de nuestras preocupaciones, pero siempre ayuda.
Álvaro González