2016-10-17 24 views
0

我有一個查詢,其中我計算以下三項行動SQL查詢來計算總以hh: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三個時間差之間的時間差:毫米:ss格式。我如何在SQL查詢中做到這一點?

我的查詢看起來如下:

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

您發佈的查詢似乎不完整。恕我直言,最好的解決辦法是將三個字段(總結)轉換爲秒,然後添加這些字段。最後再將秒轉換成HH:MM:SS。