SQL Server 相当于 MySQL 的 NOW()?

SQL Server equivalent of MySQL's NOW()?

提问人:Andrew G. Johnson 提问时间:12/22/2008 最后编辑:DMKAndrew G. Johnson 更新时间:12/21/2022 访问量:222031

问:

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

INSERT INTO timelog (datetime_filed) VALUES (NOW())
sql-server

评论


答:

252赞 Daniel Schaffer 12/22/2008 #1

getdate()或。getutcdate()

29赞 Ian Varley 12/22/2008 #2

如果您希望更符合 ANSI,也可以使用 ,(尽管如果您在数据库供应商之间移植代码,这将是您最不担心的)。这与幕后完全相同(有关更多信息,请参阅此问题)。CURRENT_TIMESTAMPGetDate()

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

评论

5赞 Álvaro González 4/9/2012
我喜欢,因为它适用于 MySQL、SQL Server、Oracle......正如你所说,这是我们最不担心的,但它总是有帮助的。CURRENT_TIMESTAMP
91赞 Steven A. Lowe 12/22/2008 #3
getdate() 

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

getutcdate()

无论您的应用是否跨时区运行 - 否则,您将面临在春季/秋季过渡时搞砸日期数学运算的风险

评论

0赞 Rei Miyasaka 1/9/2021
时区更改是否跨越日期更改?在太平洋标准时间,时区更改总是发生在午夜过后几个小时。
34赞 DMK 8/1/2013 #4

SYSDATETIME() 和 SYSUTCDATETIME()

DateTime2 的等效项

GetDate() 和 GetUTCDate()

返回 DateTime

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

0赞 Muhammad Sohail 12/21/2022 #5

以下是可以在 SQL Server 中而不是 NOW() 中使用的函数

1.系统日期时间() 2. 获取日期 () 3. GETUTCDATE() 4. CURRENT_TIMESTAMP

这些函数提供几乎准确的日期和时间,而 SYSDATETIME 以毫秒为单位提供更精确的时间。

查询: 选择 SYSDATETIME()

输出: 2022-12-21 19:38:49.4181976

查询: 选择 GETDATE () |GETUTCDATE() |CURRENT_TIMESTAMP

输出: 2022-12-21 19:38:49.413