SQL Server - ошибка округления DATEDIFF - PullRequest
2 голосов
/ 30 сентября 2011

В моем выражении sql мне нужно получить строки, которые datediff более 3 месяцев.

Но я обнаружил, что, похоже, проблема округления, такая как

С даты: 2010-09-09
На сегодняшний день: 2010-12-01

select datediff(month,' 2010-09-09', '2010-12-01')

Возвращает 3 для результата.

Как это исправить? спасибо.

С уважением, Джо

Ответы [ 2 ]

2 голосов
/ 30 сентября 2011

Вы можете использовать

datediff(day,@d1,@d2) >= 90
1 голос
/ 30 сентября 2011

Datediff (month, date1, date2) будет сравнивать только разницу между частями месяца и не учитывать дни.

Для расчета реального числа месяцев между датами у вас будетчтобы сделать некоторую ручную работу.

Этот ответ

выглядит как то, что вы просите, но вам, возможно, придется изменить в зависимости от вашего конкретного определения того, что составляетразница в месяце (включая неполные месяцы?).

...