ошибка во время выполнения с использованием даты и между - PullRequest
0 голосов
/ 24 августа 2018

Я новичок в SQL, и у меня возникла следующая проблема: я использую это:

DATEDIFF(day, Date1, Date2) between -31 and 0

после оператора where как часть моего кода, и у меня возникают проблемы с ошибками времени,Похоже, код работает и через определенное время останавливается

Кто-нибудь из вас когда-либо использовал datediff и между ними, как указано выше?Мне нужно отфильтровать случаи, когда разница между этими двумя датами больше -31, но также и отрицательная.Если есть другой способ, я с удовольствием его использую

Обе даты представлены в формате datetime.

1 Ответ

0 голосов
/ 24 августа 2018

Этот код:

DATEDIFF(day, Date1, Date2) between -31 and 0

правильно. Единственная ошибка времени выполнения, о которой я могу думать, может произойти, если Date1 и / или Date2 хранятся как строки , а не как даты. Вы должны использовать соответствующие типы для данных - и соответствующий тип для date равен date.

Вы должны исправить данные. Но вы можете обойти это, выполнив:

DATEDIFF(day, TRY_CONVERT(date, Date1), TRY_CONVERT(date, Date2)) BETWEEN -31 AND 0
...