我正在查看一些较旧的存储过程,并遇到了一些虽然我知道它可以工作的事情,但是我想知道我可以假设它会工作多少。
该代码将从当前日期减去7天,并按以下方式进行操作:
Select GetDate() - 7
现在,在我问这个问题之前,我想非常清楚:是的,我完全理解正确的方法是使用以下代码:
Select DateAdd(Day, -7, GetDate())
但是,这不是我的问题。
我的问题是,我是否可以安全地假设(在所有情况下)从DATETIME
数据类型中添加或减去数值时,它总是 < / em>是几天内添加还是删除?
GetDate() - 7
总是会删除七个天吗?
在任何可能的情况下(配置,区域,归类,gremlins等),有没有 可能会导致GetDate() - 7
产生其他日期分量(例如Hour
,Minute
,Microsecond
等)被减去而不是Day
s?
答案 0 :(得分:2)
是的,这是可以保证的。 -
运算符在日期时间和整数之间的行为已得到很好的定义,并且不会被任何配置更改。