我在其中一个表格中有树列:登记入住时间和退房时间以及billableHours。办理登机手续退房是date
列,billableHours
是varchar
,并希望格式如下: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
格式。
有意义吗?
提前感谢您的输入/反馈。
答案 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