提问人:Andrew G. Johnson 提问时间:12/22/2008 最后编辑:DMKAndrew G. Johnson 更新时间:12/21/2022 访问量:222031
SQL Server 相当于 MySQL 的 NOW()?
SQL Server equivalent of MySQL's NOW()?
问:
我是一个MySQL人,正在处理SQL Server项目,试图获取一个日期时间字段来显示当前时间。在MySQL中,我会使用NOW(),但它不接受它。
INSERT INTO timelog (datetime_filed) VALUES (NOW())
答:
getdate()
或。getutcdate()
如果您希望更符合 ANSI,也可以使用 ,(尽管如果您在数据库供应商之间移植代码,这将是您最不担心的)。这与幕后完全相同(有关更多信息,请参阅此问题)。CURRENT_TIMESTAMP
GetDate()
但是,没有 ANSI 等效项,如果您的应用程序在多个时区运行,这可能是您应该使用的那个......GetUTCDate()
评论
CURRENT_TIMESTAMP
getdate()
是直接等效的,但应始终使用 UTC 日期时间
getutcdate()
无论您的应用是否跨时区运行 - 否则,您将面临在春季/秋季过渡时搞砸日期数学运算的风险
评论
SYSDATETIME() 和 SYSUTCDATETIME()
是 DateTime2 的等效项
返回 DateTime。
DateTime2 现在是在 SQL Server 2008+ 中存储日期和时间的首选方法。请参阅以下 StackOverflow 帖子。
以下是可以在 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
评论