在SQL Server中检索日期;CURRENT_TIMESTAMP与GetDate()的区别

74
使用SQL Server,哪种方法是检索日期最快或最佳的实践方法?CURRENT_TIMESTAMPGetDate()之间有区别吗?
4个回答

96

CURRENT_TIMESTAMP 是标准 ANSI SQL,理论上是你需要移动数据库时不需要变更成千上万行特定于 SQL Server 的 SQL 语句中的“不需要更改”的微小区域之一....


6
如果你想要走“老派”路线,你也可以等价地使用 {fn now()} - brianary

33

CURRENT_TIMESTAMP 是 ANSI SQL 规范的一部分。而 GETDATE() 是 SQL Server 特定的函数,继承自 SQL Server 所基于的原始 Sybase 代码。

虽然二者做的事情完全相同。


11

为了“可移植性”原因,我建议使用CURRENT_TIMESTAMP,因为它在SQL-92中有等价的语法,避免只针对SQL Server的特定语法。

顺便问一句,为什么不把它命名为getdatetime()?现在SQL Server 2008有了DATETIME数据类型,我们可以希望得到对SQL-92中的CURRENT_DATECURRENT_TIME的支持,这时候getdate()可能会变得更加混乱。


8

Books Online告诉我们,CURRENT_TIMESTAMP“等同于GETDATE()”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接