как я могу рассчитать среднее количество дней в sql server?

#sql-server-2005 #sql-server-2008

#sql-server-2005 #sql-server-2008

Вопрос:

Мне нужно вычислить средние дни в пределах указанных значений datetime в sql server, которые включают логический день (hh mm ss mi) в качестве среднего времени (дней). кто-нибудь может мне помочь?

заранее спасибо…

Комментарии:

1. извините, здесь еще рано, и я еще не пил кофе. Можете ли вы предоставить более подробную информацию? Что вы подразумеваете под средними днями в пределах значений datetime? Существует ли диапазон дат?

2. о .. доброе утро… На самом деле мне нужно рассчитать среднее количество дней для диапазона значений datetime, которые должны быть заданы. скажем, например, рассмотрим два столбца datetime как @startdatetime и @enddatetime.ex:@startdatetime = ‘2008-09-03 10:00:00.000’ и @enddatetime = ‘2008-09-03 11:05:05.005’. Я хочу вычислить общее количество дней в этом диапазоне значений datetime. например, 2.5 и бла-бла-бла…

Ответ №1:

Вы можете использовать функцию datediff:

 SELECT DATEDIFF(day, startdate, enddate)
FROM myTable
  

Это даст вам количество дней между двумя датами.

Вы можете получить среднее значение с помощью функции AVG:

 SELECT AVG(DATEDIFF(day, startdate, enddate))
FROM myTable
  

Ответ №2:

И на всякий случай, если ваша конечная дата может быть нулевой, попробуйте это

 select case when (SubscriptionEnd is null) 
then datediff (day,SubscriptionStart,getdate())
else datediff (day,SubscriptionStart,SubscriptionEnd)
end as 'totaldays'
from [dbo].[whatever]