Разница в DateTime SQL в дни
-
29-09-2019 - |
Вопрос
Я пытаюсь найти, сколько дней между двумя датами. Я пытался использовать это:
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))