在 sql 服务器中检索日期,CURRENT_TIMESTAMP vs GetDate()

使用 SQLServer ——用于数据检索的最快方法或最佳实践方法是什么?有区别吗?

29772 次浏览

在线图书告诉我们,CURRENT_TIMESTAMP“相当于 GETDATE()”。

CURRENT_TIMESTAMP是标准的 ANSI SQL,理论上来说,如果你需要移动数据库的话,那么在成千上万特定于 SQL Server 的 SQL 行中,有一个“不需要改变”的小岛。

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

但他们做的事情完全一样。

出于“可移植性”的原因,我赞成使用 CURRENT_TIMESTAMP,也就是说,如果直接使用 SQL-92,为什么还要特定于 SQL Server?

另外,为什么没有命名为 getdatetime()?既然 SQL Server 2008具有 DATETIME数据类型,我们就可以希望获得对 SQL-92的 CURRENT_DATECURRENT_TIME的支持,此时 getdate()可能会更加令人困惑。