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())
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())
Respuestas:
getdate()
o getutcdate()
.
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
SYSDATETIME()
y SYSUTCDATETIME()
son los equivalentes de DateTime2 de
que devuelven un DateTime .
DateTime2 es ahora el método preferido para almacenar la fecha y la hora en SQL Server 2008+. Consulte la siguiente publicación de StackOverflow .
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 ...
CURRENT_TIMESTAMP
porque funciona en MySQL, SQL Server, Oracle ... Como dijiste, es la menor de nuestras preocupaciones, pero siempre ayuda.