我是一个MySQL开发人员,现在正在做一个SQL Server项目,尝试让一个datetime字段显示当前时间。在MySQL中,我会使用NOW()函数,但在SQL Server中它不被接受。
INSERT INTO timelog (datetime_filed) VALUES (NOW())
我是一个MySQL开发人员,现在正在做一个SQL Server项目,尝试让一个datetime字段显示当前时间。在MySQL中,我会使用NOW()函数,但在SQL Server中它不被接受。
INSERT INTO timelog (datetime_filed) VALUES (NOW())
getdate()
或 getutcdate()
。
getdate()
这是直接等效的,但你应该始终使用UTC日期时间
getutcdate()
无论你的应用程序是否跨越时区运行,否则您会在春秋季节转换时存在日期计算错误的风险。
SYSDATETIME()
和SYSUTCDATETIME()
是DateTime2的等价物
返回DateTime。
现在DateTime2是SQL Server 2008+中存储日期和时间的首选方法。请参见以下StackOverflow帖子。
如果你希望更符合ANSI标准(尽管在不同的数据库供应商之间移植代码可能是您最不用担心的事情),你也可以使用CURRENT_TIMESTAMP
。在底层,它与GetDate()
完全相同(有关详细信息,请参见此问题)。
然而,GetUTCDate()
没有ANSI等效项,如果您的应用程序涉及多个时区,则应该使用它...
CURRENT_TIMESTAMP
,因为它可以在MySQL、SQL Server、Oracle等数据库中使用。正如你所说,这不是我们最担心的问题,但它总是有帮助的。 - Álvaro González