日期扣除 - 第31天丢失。 sql 2008

时间:2016-06-08 17:37:30

标签: sql sql-server sql-server-2008

我在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天?

1 个答案:

答案 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