是否可以保证从DATETIME添加或减去的天数是多少?

时间:2018-07-05 16:10:57

标签: sql sql-server tsql datetime language-lawyer

我正在查看一些较旧的存储过程,并遇到了一些虽然我知道它可以工作的事情,但是我想知道我可以假设它会工作多少。

该代码将从当前日期减去7天,并按以下方式进行操作:

Select GetDate() - 7

现在,在我问这个问题之前,我想非常清楚:是的,我完全理解正确的方法是使用以下代码:

Select DateAdd(Day, -7, GetDate())

但是,这不是我的问题。

我的问题是,我是否可以安全地假设(在所有情况下)从DATETIME数据类型中添加或减去数值时,它总是 < / em>是几天内添加还是删除?

GetDate() - 7 总是会删除七个吗?

在任何可能的情况下(配置,区域,归类,gremlins等),有没有 可能会导致GetDate() - 7产生其他日期分量(例如HourMinuteMicrosecond等)被减去而不是Day s?

1 个答案:

答案 0 :(得分:2)

是的,这是可以保证的。 -运算符在日期时间和整数之间的行为已得到很好的定义,并且不会被任何配置更改。