如何通过日期时间获取任务之间的时间 [英] How Do I Get The Time Between To Task By Datetime
本文介绍了如何通过日期时间获取任务之间的时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好,我有多个任务分配给销售人员。任务按顺序依次流动。销售经理关注这项任务。
Hello, i have number of tasks assigned to sales person.the task is flow in sequence one after another. the sales manager have watch on that task.
EmpId OrderId TaskName TaskAssignedDate
1 1 TakeOrder 11 Nov 2015 10:05:07
2 1 ProcessOrder 11 Nov 2015 10:07:07
3 1 PackOrder 12 Nov 2015 11:44:07
4 1 CourierOrder 13 Nov 2015 13:15:07
5 1 DeliverOrder 14 Nov 2015 15:32:07
这是我桌上的记录......我怎么能得到时间在任何两个任务之间。
说从TakeOrder到CourierOrder或PackOrder到DeliverOrder
this are the records in my table ... how can i get the time between any two tasks.
say from TakeOrder to CourierOrder OR PackOrder to DeliverOrder
推荐答案
DECLARE @TakeOrder DATETIME;
DECLARE @ProcessOrder DATETIME;
-- Time of the ARTICLE created
SET @TakeOrder = '11 Nov 2015 10:05:07';
-- Simulation of NOW datetime
-- (in real world you would probably use GETDATE())
SET @ProcessOrder = '11 Nov 2015 10:07:07';
-- Created 9 days ago.
SELECT 'Diff ' + CAST(DATEDIFF(day, @TakeOrder, @ProcessOrder ) AS NVARCHAR(50)) + ' days ago.' as diff_by_day;
-- Created 1 weeks, 2 days, 3 hours, 25 minutes and 20 seconds ago.
SELECT 'Diff '
+ CAST(DATEDIFF(second, @TakeOrder, @ProcessOrder ) / 60 / 60 / 24 / 7 AS NVARCHAR(50)) + ' weeks, '
+ CAST(DATEDIFF(second, @TakeOrder, @ProcessOrder ) / 60 / 60 / 24 % 7 AS NVARCHAR(50)) + ' days, '
+ CAST(DATEDIFF(second, @TakeOrder, @ProcessOrder ) / 60 / 60 % 24 AS NVARCHAR(50)) + ' hours, '
+ CAST(DATEDIFF(second, @TakeOrder, @ProcessOrder ) / 60 % 60 AS NVARCHAR(50)) + ' minutes and '
+ CAST(DATEDIFF(second, @TakeOrder, @ProcessOrder ) % 60 AS NVARCHAR(50)) + ' seconds ago.' as Difference_by_hole;
试试吧使用DATEDIFF(datepart,startdate,enddate)函数。
Try it by using DATEDIFF(datepart,startdate,enddate) function.
这篇关于如何通过日期时间获取任务之间的时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文