2017-06-23 45 views
0

讓我們希望您能提供幫助。如何獲取Datediff(T-SQL)的時間部分

SELECT 
Mpl.EmpNo, 
CONCAT(Mpl.FName,' ',Mpl.SName) AS 'Name', 
Ctt.TaskName AS 'Task', 
Cts.TaskStart AS 'Start Time', 
Cts.TaskEnd As 'End Time', 
DATEDIFF(MINUTE, Cts.TaskStart,Cts.TaskEnd) AS 'Task Time' 
FROM CHDS_Management.dbo.People Mpl 
LEFT JOIN CHDS_Common.dbo.TaskScan Cts ON Cts.EmpID = Mpl.EmpNo 
LEFT JOIN CHDS_Common.dbo.TaskType Ctt ON Ctt.TaskShort = Cts.Task 

我想了解一個任務需要多長時間。 TaskStart和TaskEnd是datetime2(0)數據類型。我需要找到2次之間的時間差。

所以喬斯任務時間: 15/06/2017 11時十二分50秒 - 15/06/2017 12時14分56秒

我希望看到一個反饋的任務時間爲: 01 :02:06

(這是在MySQL這麼簡單)

+1

'轉換(VARCHAR(20),taskstart,108)'https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and- convert-transact-sql – artm

回答

0

這是你想要表達的,如果你需要minute granuality。與second替換minute否則

select cast(dateadd(minute, datediff(minute, '2017-06-15 11:12:50', '2017-06-15 12:14:56'), 0) as time) 
+0

cast(dateadd(SECOND,datediff(SECOND,Cts.TaskStart,Cts.TaskEnd),0)as time)AS'Task Time' –