繁体   English   中英

SQL Server 相当于 MySQL 的 NOW()?

[英]SQL Server equivalent of MySQL's NOW()?

我是一名从事 SQL Server 项目的 MySQL 人员,试图获取日期时间字段以显示当前时间。 在 MySQL 中我会使用 NOW() 但它不接受。

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

getdate()getutcdate()

getdate() 

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

getutcdate()

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

SYSDATETIME()SYSUTCDATETIME()

DateTime2的等价物

GetDate()GetUTCDate()

返回DateTime

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

您还可以使用CURRENT_TIMESTAMP ,如果您想要更符合ANSI标准(尽管如果您在数据库供应商之间移植代码,那将是您最不担心的事情)。 它与GetDate()完全相同(详见此问题 )。

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

以下是您可以在 SQL Server 中代替 NOW() 使用的函数

1.SYSDATETIME() 2.GETDATE() 3.GETUTCDATE() 4.CURRENT_TIMESTAMP

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

查询:选择 SYSDATETIME()

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

查询:SELECT GETDATE () | 获取日期() | CURRENT_TIMESTAMP 时间戳

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM