检索 SQL Server 中的日期; CURRENT_TIMESTAMP 与 GetDate()
使用 SQL Server,哪一种是用于日期检索的最快或最佳实践方法? CURRENT_TIMESTAMP
和 GetDate()
之间有区别吗?
Using SQL Server, which is the fastest or best practice method to use for date retrieval? Is there a difference between CURRENT_TIMESTAMP
and GetDate()
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
CURRENT_TIMESTAMP
是标准 ANSI SQL,因此理论上,如果您需要移动数据库,它就是您数千条特定于 SQL Server 的 SQL 行中“不需要更改”的一个小岛。 ..CURRENT_TIMESTAMP
is standard ANSI SQL, and so is theoretically one tiny little island of 'don't need to change' amongst your thousands of SQL Server-specific lines of SQL if you ever need to move databases....CURRENT_TIMESTAMP
是 ANSI SQL 规范的一部分。GETDATE()
是一个特定于 SQL Server 的函数,继承自 SQL Server 所基于的原始 Sybase 代码。不过,他们做的事情完全相同。
CURRENT_TIMESTAMP
is part of the ANSI SQL spec.GETDATE()
is a SQL Server-specific function inherited from the original Sybase code on which SQL Server is based.They do exactly the same thing, though.
出于“可移植性”原因,我投票支持 CURRENT_TIMESTAMP,即当存在直接的 SQL-92 等效项时,为什么要特定于 SQL Server?
PS 为什么它不命名为
getdatetime()
? 既然 SQL Server 2008 有了DATE
和TIME
数据类型,我们希望能够获得对 SQL-92 的CURRENT_DATE
和CURRENT_TIME 的支持
,此时getdate()
可能会更加混乱。My vote is for
CURRENT_TIMESTAMP
for 'portability' reasons i.e. why be SQL Server -specific when there is a direct SQL-92 equivalent?PS why was it not named
getdatetime()
? Now that SQL Server 2008 has aDATE
andTIME
data type, we can hope to get support for SQL-92'sCURRENT_DATE
andCURRENT_TIME
, at which pointgetdate()
could be potentially even more confusing.联机丛书告诉我们
CURRENT_TIMESTAMP
“相当于GETDATE()
”。Books Online tells us that
CURRENT_TIMESTAMP
"is equivalent toGETDATE()
".