Вопрос

Я пытаюсь найти, сколько дней между двумя датами. Я пытался использовать это:

SET Days_Outstanding = DATEDIFF(day, CONVERT(datetime, LS_CHG_DTE_EQP, 1), CONVERT(datetime, Report_Date, 1))

Однако это не возвращает число в течение нескольких дней. Это возвращает DateTime в годы, которые не имеют ничего общего с моим набором данных.

Я не уверен, где проблема, по-прежнему довольно новичок в SQL. Кроме того, у меня есть Days_outxanding, определяемый как int, может ли это быть проблемой? Спасибо!

РЕДАКТИРОВАТЬ

Спасибо всем! Не уверен, что произошло, я изменил несколько вещей к тому, что вы предложили, и это завело работать, когда я вернулся к тому, что у меня изначально. Не уверен, что случилось. Спасибо мысли!

Это было полезно?

Решение

DATEDIFF Возвращает целое число

Тем не менее, количество дней может быть просто неправильно в зависимости от значений / DataType LS_CHG_DTE_EQP/Report_Date и locale

Также, DATEDIFF Работает на дневных границах, а не 24 часа. Так 23:56 к 00:02 один день.

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

Другие советы

Пример

select DATEDIFF(dd,'20100101',getdate())

вернется 227 сегодня

Таким образом, в вашем случае предполагая LS_CHG_DTE_EQP и REPORT_DATE Обе столбцы DateTime

SET @Days_Outstanding = DATEDIFF(day, LS_CHG_DTE_EQP, Report_Date)

Вы пробовали просто

SET Days_Outstanding = CONVERT(datetime, LS_CHG_DTE_EQP, 1) - CONVERT(datetime, Report_Date, 1))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top