среднее значение между двумя датами

Erik_Kartmann
Дата: 29.01.2009 14:31:32
как проще всего вычислить среднее значение типа datatime между двумя датами.
допустим '2008-01-01 00:00:00.00' и '2009-01-01 00:00:00.00' ?
должно вывести среднее значение. например
'2008-06-00 00:00:00.00', кажетса
^^
Дата: 29.01.2009 14:38:10
Можно вот так
SELECT DATEADD ( day, DATEDIFF(day,'20080101', '20090101')/2, '20080101' )
Ken@t
Дата: 29.01.2009 14:38:34
dateadd( month, datediff ( month ,'2008-01-01 00:00:00.00' , '2009-01-01 00:00:00.00'  )/2 ,'2008-01-01 00:00:00.00'  )
Владимир М.
Дата: 29.01.2009 14:42:17
А AVG не прокатит ?
Паганель
Дата: 29.01.2009 14:45:34
declare @dtStart datetime, @dtEnd datetime, @dtBase datetime
select @dtStart = '20080101', @dtEnd = '20090101', @dtBase = '19000101'

select dateadd(day, avg(cnt), @dtBase) as result
  from (select @dtStart as dt, datediff(day, @dtBase, @dtStart) as cnt
        union all
        select @dtEnd, datediff(day, @dtBase, @dtEnd)
       ) as t

result
-----------------------
2008-07-02 00:00:00.000

(1 row(s) affected)
Паганель
Дата: 29.01.2009 14:48:24
Поле dt внутри derived table забыл убрать
Erik_Kartmann
Дата: 29.01.2009 14:52:25
А если без погрешности?
print @DateFirst
print @DateEnd
print  DATEADD ( day, DATEDIFF(day,@DateFirst, @DateEnd)/2, @DateFirst )
Feb 19 2004 9:23AM
Feb 18 2004 5:53PM

Feb 19 2004 9:23AM
Паганель
Дата: 29.01.2009 14:58:21
declare @dtStart datetime, @dtEnd datetime
select @dtStart = '20040218 05:53:00', @dtEnd = '20040219 09:23:00'

select cast(avg(dt) as datetime) as result
  from (select cast(@dtStart as float) as dt
        union all
        select cast(@dtEnd as float)
       ) as t

result
-----------------------
2004-02-18 19:38:00.000

(1 row(s) affected)
Но я Вам этого не советовал
Такое преобразование, насколько я помню, не документировано (или я плохо искал)
^^
Дата: 29.01.2009 15:04:13
Erik_Kartmann
А если без погрешности?
print @DateFirst
print @DateEnd
print DATEADD ( day, DATEDIFF(day,@DateFirst, @DateEnd)/2, @DateFirst )
Feb 19 2004 9:23AM
Feb 18 2004 5:53PM

Feb 19 2004 9:23AM


А в какую чторону без погрешности?

Округлите результат деления и будет без погрешностей :)
Erik_Kartmann
Дата: 29.01.2009 16:56:35
Обновил, как есть.
вроде спасибо ;)