我在sql server 2008中有一个datetime变量,如:
declare @tmpStart DateTime = '2011/04/01' --(April 01, 2011)
我想要的是从这一天开始减去一天:
declare @newDate DateTime = DateAdd(DAY,-1,@tmpStart)
这是返回2011-03-30而不是31.我的错误在哪里?为什么跳过第31天?
答案 0 :(得分:0)
非常奇怪且不应该发生,但你可以试试这个,这可能会帮助你缩小问题的范围。尝试减去分钟,你会发现是否必须更改任何设置,如果需要,你可以用分钟计算差异。
declare @tmpStart DateTime = '2011/04/01'
declare @newDate DateTime = DateAdd(MINUTE,-1440,@tmpStart)
declare @newDate1 DateTime = DateAdd(MINUTE,-1400,@tmpStart)
select @newDate
-- 2011-03-31 00:00:00.000
select @newDate1
-- 2011-03-31 00:40:00.000