[英]Multiply TIME in SQL Server
我在下面有这个查询,基本上我想减去2日期并获取小时。
但是,我需要减去的时间乘以清洁工的数量
SELECT
CONVERT(TIME, ClientBooking.TimeEnd - ClientBooking.TimeStart) AS HoursWorked2,
ClientBooking.NumberOfCleaners AS NumberOfCleaners,
ClientBooking.TimeStart,
ClientBooking.TimeEnd,
ClientBooking.ClientID,
((((ClientInfo.FirstName + N' ') +
ClientInfo.LastName) + N' ') +
ClientInfo.Company) AS ClientName,
((((ClientInfo.Address + N' - ') +
ClientInfo.City) + N' - ') +
ClientInfo.ZipCode) AS Address,
((ClientInfo.PhoneNumber + N' ') +
ClientInfo.EmailAddress) AS Contact,
(ClientBooking.HourlyRate / 60) AS MinRate,
(DATEDIFF(MINUTE,ClientBooking.TimeStart,ClientBooking.TimeEnd) * ClientBooking.NumberOfCleaners) AS Quantity,
ClientBooking.HourlyRate,
DATEDIFF(HOUR, ClientBooking.TimeStart, ClientBooking.TimeEnd) AS HoursWorked
FROM
(dbo.ClientBooking ClientBooking
INNER JOIN
dbo.ClientInfo ClientInfo ON (ClientInfo.ClientID = ClientBooking.ClientID))
基本上,我需要将结果相乘:
CONVERT(TIME,"ClientBooking"."TimeEnd" - "ClientBooking"."TimeStart" )
如何使用这个:
Select
convert(time,DATEADD(MINUTE, ( convert(float,(DATEDIFF(minute, ClientBooking.TimeStart, ClientBooking.TimeEnd) * ClientBooking.NumberOfCleaners))/60), ''))
FROM
(dbo.ClientBooking ClientBooking
INNER JOIN
dbo.ClientInfo ClientInfo ON (ClientInfo.ClientID = ClientBooking.ClientID))
对不起,如果我错过了括号!
您可以使用DATEDIFF()函数。类似:
DATEDIFF(hour, ClientBooking.TimeStart, ClientBooking.TimeEnd) * ClientBooking.NumberOfCleaners
作为您想要的专栏!
如果我对您的理解正确,那么可以为您提供帮助:
declare @start datetime = '2018-11-02 07:00:00'
declare @end datetime = '2018-11-02 08:03:00'
declare @diff int
Select @diff = DATEDIFF(minute,@start,@end)
Select case
when @diff < 60 then concat('00:', right('0' + convert(varchar,@diff), 2))
when @diff >= 60 and @diff < 120 then '01:' + right('0' + convert(varchar,@diff - 60), 2)
when @diff >= 120 and @diff < 180 then '02:' + right('0' + convert(varchar,@diff - 120), 2)
when @diff >= 180 and @diff < 240 then '03:' + right('0' + convert(varchar,@diff - 180), 2)
end
当然,您还需要添加以下几个小时。
我已将所有内容拆分,因此更容易理解。 但是您应该能够在一行中编写它,并且也没有变量
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.