此处记录了从 DATETIME 中减去数字:“也可以从日期中减去以天为单位的数字。”
declare @Now as DateTime = GetDate();
declare @OneWeekAgo as SQL_Variant = @Now - 7;
select @Now as [Now], @OneWeekAgo as [Delta], SQL_Variant_Property( @OneWeekAgo, 'BaseType' ) as [Data Type];
在对日期和时间数据类型使用运算符下:“要对所有日期和时间数据类型进行加减运算,请使用 DATEADD 和 DATEDIFF。”
在可能违反最小惊讶原则的情况下,我们看到以下奇怪的结果:
declare @Now as DateTime = GetDate();
declare @Then as DateTime = '17760704';
declare @Delta as SQL_Variant = @Now - @Then;
select @Now as [Now], @Then as [Then], @Delta as [Delta],
SQL_Variant_Property( @Delta, 'BaseType' ) as [Data Type],
Cast( @Delta as Int ) as [Days];
Aaron Bertrand 条款:所提供的信息未经 Aaron Bertrand 批准。此外,作者未能指出在任何给定环境中它可能不适用或不是最佳的所有可能方式,无论多么晦涩或人为。作者还犯了未能明确引用至少三 (3) 篇 Aaron Bertrand 的博客文章和规范答案的主要和/或序数罪。因此,它对整个社区没有任何好处,并且应该立即永久地将作者从所有 StackExchange 站点中删除,并且应该从中删除作者提供的任何内容。微软出色的文档在多大程度上可能导致任何(错误)理解,这无关紧要。