使用SQL Server,哪种方法是检索日期最快或最佳的实践方法?
CURRENT_TIMESTAMP
和GetDate()
之间有区别吗?CURRENT_TIMESTAMP
和GetDate()
之间有区别吗?CURRENT_TIMESTAMP
是标准 ANSI SQL,理论上是你需要移动数据库时不需要变更成千上万行特定于 SQL Server 的 SQL 语句中的“不需要更改”的微小区域之一....
CURRENT_TIMESTAMP
是 ANSI SQL 规范的一部分。而 GETDATE()
是 SQL Server 特定的函数,继承自 SQL Server 所基于的原始 Sybase 代码。
虽然二者做的事情完全相同。
为了“可移植性”原因,我建议使用CURRENT_TIMESTAMP
,因为它在SQL-92中有等价的语法,避免只针对SQL Server的特定语法。
顺便问一句,为什么不把它命名为getdatetime()
?现在SQL Server 2008有了DATE
和TIME
数据类型,我们可以希望得到对SQL-92中的CURRENT_DATE
和CURRENT_TIME
的支持,这时候getdate()
可能会变得更加混乱。
Books Online告诉我们,CURRENT_TIMESTAMP
“等同于GETDATE()
”。
{fn now()}
。 - brianary