SQL Server相当于MySQL的NOW()?

And*_*son 189 sql sql-server

我是一个研究SQL Server项目的MySQL人,试图获取一个datetime字段来显示当前时间.在MySQL中我会使用NOW(),但它不接受.

INSERT INTO timelog (datetime_filed) VALUES (NOW())
Run Code Online (Sandbox Code Playgroud)

Dan*_*fer 207

getdate()getutcdate().


Ste*_*owe 71

getdate() 
Run Code Online (Sandbox Code Playgroud)

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

getutcdate()
Run Code Online (Sandbox Code Playgroud)

您的应用程序是否跨时区运行 - 否则您将面临在春/秋季过渡时拧紧日期数学的风险


DMK*_*DMK 29

SYSDATETIME()SYSUTCDATETIME()

DateTime2的等价物

GetDate()GetUTCDate()

返回DateTime.

DateTime2现在是在SQL Server 2008+中存储日期和时间的首选方法.请参阅以下StackOverflow Post.


Ian*_*ley 24

您也可以使用CURRENT_TIMESTAMP,如果您想要更符合ANSI标准(尽管如果您在数据库供应商之间移植代码,那将是您最不担心的问题).它GetDate()与封面下的内容完全相同(有关详细信息,请参阅此问题).

GetUTCDate()但是,如果您的应用程序在多个时区内运行,则可能是您应该使用的ANSI等效项...

  • 我喜欢`CURRENT_TIMESTAMP`,因为它适用于MySQL,SQL Server,Oracle ......正如你所说,这是我们最不担心的问题,但它总是有帮助的. (5认同)