SQL Server相当于MySQL的NOW()?

SQL Server equivalent of MySQL's NOW()?

我是一个MySQL工作人员,正在开发一个SQL Server项目,试图获取一个日期时间字段来显示当前时间。在MySQL中,我会使用now(),但它不接受。

1
INSERT INTO timelog (datetime_filed) VALUES (NOW())

getdate()getutcdate()


1
getdate()

是直接等效的,但应始终使用UTC日期时间

1
getutcdate()

无论你的应用程序是否跨时区运行,否则你都有可能在春季/秋季转换时搞砸最新的数学。


SYSDATETIME()SYSUTCDATETIME()

日期时间2是否等同于

getdate()getutcdate()

返回日期时间。

datetime2现在是在SQL Server 2008+中存储日期和时间的首选方法。请参阅下面的stackoverflow post。


如果您想更符合ANSI标准,也可以使用CURRENT_TIMESTAMP(不过,如果您在数据库供应商之间移植代码,这将是您最不担心的事情)。它与封面下的getdate()完全相同(更多信息见本问题)。

但是,没有与getutcdate()等效的ansi,如果你的应用程序在一个以上的时区运行,那么它很可能是你应该使用的。