SQL Server相当于MySQL的NOW()?

我是一个在SQL Server项目上工作的MySQL人,试图让datetime字段显示当前时间。 在MySQL中我会使用NOW(),但它不接受。

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

getdate()getutcdate()

 getdate() 

是直接等价的, 但你应该总是使用UTCdate时间

 getutcdate() 

无论您的应用程序是否在不同的时区运行 – 否则就会冒着在春季/秋季转换时搞砸date的风险

SYSDATETIME()SYSUTCDATETIME()

是DateTime2的等价物

GetDate()GetUTCDate()

它返回一个DateTime 。

DateTime2现在是在SQL Server 2008+中存储date和时间的首选方法。 请参阅下面的StackOverflow Post 。

你也可以使用CURRENT_TIMESTAMP ,如果你想更符合ANSI的话(尽pipe如果你是在数据库供应商之间移植代码的话,那将是你最担心的问题)。 它和GetDate()完全一样(请看这个问题 )。

GetUTCDate()没有ANSI等价物,但如果您的应用程序在多个时区中运行,则可能是您应该使用的方法。