2014-09-16 2 views
0

모든 시간 (형식 : 00:00:00)을 계산하려고하는이 SQL 스크립트를 WHERE의 조건을 충족하면 모두 합친 다음 시도합니다 그것을 그룹 짓기.SUM where 절과 그룹화 된 날짜 열

내 이해가 정확하다면 1 월 1 일부터 5 월 1 일까지 01:00:00부터 05:00:00까지 1 월 1 일과 15:00:00 사이에 15:00:00을 표시하는 것이 좋습니다. 1 월 2 일 등등.

여기 스크립트의

SELECT PLATENO, 
    SUM(DOWNTIME) as DOWNTIME 
FROM TBLTIMETURNER 
WHERE MOTOTR= 'ON' 
GROUP BY PLATENO 

이 사람이 나를 도와 드릴까요?

미리 감사드립니다.

답변

1

이것은 가장 쉬운 예를 들어, 일부 단위에서 이루어집니다, 초 : 사용함으로써, time에 다음 datetime과이 다시 변환 할 수 있습니다

select plateno, sum(datediff(second, 0, downtime)) as downtime 
from TBLTIMETURNER 
where MOTOTR= 'ON' 
group by plateno; 

:

select plateno, cast(dateadd(second, 0, sum(datediff(second, 0, downtime))) as time) as downtime 
from TBLTIMETURNER 
where MOTOTR= 'ON' 
group by plateno; 
+0

나는이를 만났다 오류 선생님,'datediff 함수로 인해 오버플로가 발생했습니다. 두 날짜/시간 인스턴스를 구분하는 날짜 부분의 수가 너무 큽니다. 정밀도가 떨어지는 날짜 부분을 사용하는 데이트 티프를 사용해보세요. ' – Dodgeball

+0

@Dodgeball. . . 'second'를'minute'로 변경하십시오. –