Когда я запускаю этот запрос, кажется, он отлично работает, когда я запускаю его против даты 2015-4-11. Однако, если я запрашиваю последние 3 дня, он возвращает значения в год, месяц и неделю как то же самое. День точный, но он, похоже, не правильно добавляет все остальное.DATEADD не работает в течение последних 30 дней
declare @today date = '2015-1-1'
select
[Day Total] = sum(case when [AccountingDate] < dateadd(DAY, 1, @today) then [Amount] else 0 end),
[Week Total] = sum(case when [AccountingDate] < dateadd(WEEK, 1, @today) then [Amount] else 0 end),
[Month Total] = sum(case when [AccountingDate] < dateadd(MONTH, 1, @today) then [Amount] else 0 end),
[Year Total] = sum([Amount])
from
[Accounting].[dbo].[HandPay]
where
[AccountingDate] >= @today and [AccountingDate] < dateadd(year, 1, @today);
Является ли ваш '' AccountingDate' значение date' или 'DATETIME'? –
AccountingDate - это дата и время, когда произошло событие. В таблице есть столбец «Дата» и столбец «Учетная дата». Оба имеют дату и время в них. – Brian
Какой сервер баз данных вы используете? –