2016-10-17 3 views
0

을 나는 세 가지 행동: MM : SS 형식

Production stop & Production start in hh:mm:ss format 
Quality stop and quality start in hh:mm:ss format 
shipping stop and shipping start in hh:mm:ss format 

내가 HH에 일부 세 시간 차이로 원하는에게 다음 사이의 시간 차이를 계산하고, 상기 쿼리를 가지고 : mm를 : ss 형식. SQL 쿼리에서 어떻게 그 일을합니까?

MY 쿼리는 다음과 같습니다 :

SELECT 

L.LOT_ID , 
L.LOT_ID_RECORD, 
L.MAT_ID 
L.QUANTITY 

CONVERT(VARCHAR,LR.DT_PRODUCT_START,120) AS PRODUCTION_START, 

ISNULL(CONVERT(VARCHAR,LR.DT_PRODUCT_ED,120) , 'NA') AS PRODUCTION_STOP, 

convert(varchar(5),DateDiff(s, LR.DT_PRODUCT_START, LR.DT_PRODUCT_END)/3600)+':'+convert(varchar(5),DateDiff(s, LR.DT_PRODUCT_START, LR.DT_PRODUCT_END)%3600/60)+':'+convert(varchar(5),(DateDiff(s, LR.DT_PRODUCT_START, LR.DT_PRODUCT_END)%60)) as PRODUCTION_TIME, 

CONVERT(VARCHAR,QC.QC_START,120) AS QC_START, 

CONVERT(VARCHAR,QC.QC_CLOSE,120) AS QC_CLOSE, 

convert(varchar(5),DateDiff(s, QC.QC_START ,QC.QC_CLOSE)/3600)+':'+convert(varchar(5),DateDiff(s, QC.QC_START , QC.QC_CLOSE)%3600/60)+':'+convert(varchar(5),(DateDiff(s, QC.QC_START,QC.QC_CLOSE)%60)) as QUALITY_TIME, 

convert(varchar(5),DateDiff(s, S.SHIPPING_START, S.SHIPPING_CLOSE)/3600)+':'+convert(varchar(5),DateDiff(s, S.SHIPPING_START, S.SHIPPING_CLOSE)%3600/60)+':'+convert(varchar(5),(DateDiff(s, S.SHIPPING_START, S.SHIPPING_CLOSE)%60)) as SHIPPING_TIME 

FROM XYZ 

나는 PRODUCTION_TIME , QUALITY_TIME and SHIPPING_TIME을 합계를하고 그 결과 hh:mm:ss 형식이어야합니다.

어떻게 달성 할 수 있을지 모르겠습니다. 좀 도와 줄 수있어?

감사합니다.

+0

아마도 CAST (DATEADD (SECOND, SUM (stuff), 0) AS TIME (0))'과 같은 것입니다. 편집 :이 경우, "물건"당신이 합계하려는 것들 각각에 대한 귀하의 datediff (두 번째, ...) 값이 될 것입니다. – ZLK

+0

결과가 24 시간을 초과하면 어떻게됩니까? –

+0

그 중 3 번이 필요합니다. 결과 합계가 24 시간을 초과하는 경우 중요하지 않습니다. 28:50:33처럼 –

답변

0

게시 된 쿼리가 불완전한 것 같습니다. IMHO, 최선의 해결 방법은 3 개의 필드를 초 단위로 변환 한 다음 초 단위로 변환하는 것입니다. 마지막으로 초를 HH : MM : SS로 다시 변환하십시오.

관련 문제