如何减去两个日期列和&计算SQL Server中的持续时间

时间:2013-12-20 20:03:45

标签: sql sql-server date datetime

我在其中一个表格中有树列:登记入住时间和退房时间以及billableHours。办理登机手续退房是date列,billableHoursvarchar,并希望格式如下:HH:MM

我可以使用以下查询

SELECT CONVERT(VARCHAR, (Checkout - checkIn), 108) 
FROM WorkTrackingLog 

但它会返回HH:MM:SS

问题#1:

如何以此格式减去checkout-checkin并获取billableHours?HH:MM

现在,一旦我从办理登机手续中获得HH:MM退房日期,我想添加HH:MM并在其他表中获取totalDuration。

例如,假设我有三条记录:

表#1:

TicketId |  billableHours 
1001    | 05:04 
1001    | 12:19
1001    | 02:16

表#2

TicketId | totalDuration
1001    |   19:39 

问题#2

如何将HH:Mm转换为int并将多个记录一起添加到totalDuration。总持续时间可以是varchar格式。

有意义吗?

提前感谢您的输入/反馈。

1 个答案:

答案 0 :(得分:1)

这应该有效

问题#1

SELECT CONVERT(varchar(5), 
   DATEADD(minute, DATEDIFF(minute, CheckOut, CheckIn), 0), 114)

问题#2

SELECT CONVERT(varchar(5), SUM(Datediff(minute,convert(datetime,'00:00:00',108), 
  convert(datetime,BillableHours,108))), 114)
GROUP BY TicketId