从
一个DATETIME一个数的减法是记录here:“也可以从日期中减去一个数字,以天为单位。”
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];
在Using Operators with Date and Time Data Types:“加减法用于所有日期和时间数据类型,使用DATEADD和DATEDIFF。”
在可能的违规行为,我们看到下面的好奇结果Principle of Least Astonishment的:
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的博客文章和至少三(3)个标准答案。因此它不会给整个社区带来任何好处,作者应立即永久地从所有StackExchange站点放逐,并且作者提供的任何内容都应从中删除。微软精彩的文档可能导致任何(错误)理解的程度并不重要。
因为1天等于24小时 –
我想那么多。但我无法找到任何文件。日期时间值之间的减法结果是日期时间值。在这种情况下,它如何评估/比较为“1天”?铸件? –