有什么理由让我每次都停止使用 SYSDATETIME() 而不是 GETDATE() ?
难道他们都没有询问CPU 现在是什么时间,或者 sysdatetime 是否需要更多指令来计算分数? Getdate 可以四舍五入吗? sysdatetime 可以更快吗,因为它不进行舍入操作?
如果我不存储纳秒,我显然不会使用 sysdatetime,但我询问的是存储大小以外的成本。 (我正在开发的当前应用程序每秒运行 sysdatetime() 至少 280 次)
SELECT SYSDATETIME();
GO
DECLARE @d DATETIME2(7) = SYSDATETIME();
GO 10000
SELECT SYSDATETIME();
GO
DECLARE @d DATETIME = SYSDATETIME();
GO 10000
SELECT SYSDATETIME();
GO
DECLARE @d DATETIME2(7) = GETDATE();
GO 10000
SELECT SYSDATETIME();
GO
DECLARE @d DATETIME = GETDATE();
GO 10000
SELECT SYSDATETIME();
Results:
- 将 SYSDATETIME 分配给 DATETIME2(7) :3.4 秒
- 将 SYSDATETIME 分配给 DATETIME :3.3 秒
- 将 GETDATE 分配给 DATETIME2(7) :3.4 秒
- 将 GETDATE 分配给 DATETIME :3.3 秒
所以看起来似乎并不重要。重要的是你将它分配给什么类型的变量,即使这样也相差不大。 10000/0.1 秒意味着增量非常非常小,不足以担心。在这种情况下我宁愿保持一致。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)