2016-09-21 3 views
0

В настоящее время я пытаюсь вычислить разницу во времени между двумя датами в базе данных в часах. Например, с 6:00 до 8:00 AM - 2 часа.SQL Server Попытка вычислить разницу в часах на две даты

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

2016-09-21 08:00:00.000 is StartTime 

2016-08-16 12:00:00.000 is End Time 

Да, я признаю, что оба они показывают отдельные даты. Я хотел бы иметь возможность вычислить разницу во времени между часами с 8:00 до 12:00, но я не смог этого сделать. В настоящее время мои вычисления возвращаются -20.

Я очень благодарен за понимание этой проблемы.

Кроме того, вот мой текущий запрос.

SELECT TherapyGroups.Name as GroupName, 
COUNT(*) as NumberAttended, 
SUM(DATEDIFF(hh, TherapyDailyNotes.StartTime, TherapyDailyNotes.EndTime)) % 24 as ContactHours 
FROM TherapyDailyNotes 

Кроме того, я использую SQL Server 2008, но я не могу использовать TIME.

ответ

2

DATEPART может извлечь только значение часов:

SELECT 
    ContactHours = abs(
        datepart(hour, TherapyDailyNotes.StartTime) - 
        datepart(hour, TherapyDailyNotes.EndTime) 
       ) 
FROM TherapyDailyNotes 
+0

Работает прекрасно. Я думал об этом так. Должно было сделать это раньше! –

Смежные вопросы