[英]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的等价物
返回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.