Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > количество часов между двумя датами


Автор: Galina 10.6.2005, 15:31
Добрый день!
Помогите пожалуйста!

У меня есть две даты:
"06.06.2005 11:15:00 AM"
"07.96.2005 12:45:00PM".
Надо найти разницу в часах между ними. Отчет генерится с помощью SQL Reporting Services (Visual Studio)

Спасибо
Галина

Автор: Vit 10.6.2005, 16:15
Если в SQL запросе то очень просто:

(Date1-Date2)/24

Автор: SergKO 16.6.2005, 08:51
В MSSQL2000 есть функция DATEDIFF ( datepart , startdate , enddate ) (см.BOL),
т.е
Код

DATEDIFF ( Hour, DateStart, DateEnd)

Автор: Lyusinka 27.12.2005, 12:53
Добрый день!
вот с часами все просто, а как быть с секундами и минутами. у меня той же самой функцией почему то не получилось ничего. она возвращает какие то непонятные совершенно цифры
например : 17:25:03 и 11:16:46
должно быть 6 часов 9 минут и 43 секунды
мне же возвращается правильно только 6 часов а все остальное ...

Автор: Vit 27.12.2005, 21:01
Она возвращает кол-во секунд или минут между числами... Что-то типа:

Код

Select
  DATEDIFF ( Hour, DateStart, DateEnd) as Hours,
  DATEDIFF (Minute, DateStart, DateEnd)-(DATEDIFF ( Hour, DateStart, DateEnd)*60) as Minutes,
  DATEDIFF (Second, DateStart, DateEnd)-(DATEDIFF (Minutes, DateStart, DateEnd)*60) as Seconds
From YourTable

Автор: Lyusinka 28.12.2005, 10:28
Спасибо, за помощь! =)

Автор: boevik 2.1.2006, 09:03
Предлагаю следующий вариант:
Код

declare @DateStart as datetime
declare @DateEnd as datetime
set @DateStart = '11:16:46'
set @DateEnd = '17:25:03'

select datediff(hh, @DateStart, @DateEnd)  as Hours, 
(datediff(ss, @DateStart, @DateEnd)%3600)/60 as Minutes, 
datediff(ss, @DateStart, @DateEnd)%60 as Seconds

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)