Разница в дате в SQL Server 2005 - PullRequest
1 голос
/ 27 июня 2010

Допустим, у меня в таблице есть две даты: DueDate и PaidDate.Что мне нужно сделать, это рассчитать разницу между этими двумя датами.Однако, если DateDiff () возвращает меньше 0, он должен показать 0.

DateDiff (Day, 0, (PaidDate-DueDate-1)) как DelayDays

Должен показать 0 для чего-либоменьше 1.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 27 июня 2010

Во-первых, это не то, как вы используете DateDiff.Вот как вы его используете:

DateDiff(Day, PaidDate, DueDate)

Чтобы получить нулевое значение, просто сравните даты:

case when PaidDate > DueDate then 0 else DateDiff(Day, PaidDate, DueDate) end

(однако я не уверен, какой датой вы обычно хотите бытьболее поздний, т. е. если вы хотите рассчитать оставшееся время или просроченное время, то вам, возможно, придется поменять их местами. В нынешнем виде он рассчитывает оставшееся время.)

1 голос
/ 27 июня 2010
case when DateDiff(Day, 0, (PaidDate-DueDate-1)) <0 then 0 else
DateDiff(Day, 0, (PaidDate-DueDate-1))  end 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...