Multiply TIME in SQL Server

time difference in sql
datediff sql
sql query to get time difference in hours and minutes
calculate working days between two dates in sql server
sql calculate working days between two dates excluding weekends and holidays
how to calculate total working hours in sql
sql working days in month
sql count number of days between two dates excluding weekends

I have this query below, basically I'm trying to subtract 2 dates and get the hours.

However, I need the subtracted time to be multiplied by the number of cleaners

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))

Basically, I need to multiply the result of this:

 CONVERT(TIME,"ClientBooking"."TimeEnd" - "ClientBooking"."TimeStart" )

How About using this:

    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))

Sorry if i have missed a parenthesis !!

A Basic Guide to SQL Server TIME Data Type, In this format: hh is two digits that represent the hour with a range from 0 to 23. ss is two digits that represent the second with the range from 0 to 59. Expression is any valid expression of the numeric data type except datetime data type in sql server. Example of * ( Multiply ) Operator : Example 1 : Displays use of multiplication for numeric numbers.

You can use DATEDIFF() function.. Something like:

DATEDIFF(hour, ClientBooking.TimeStart, ClientBooking.TimeEnd) * ClientBooking.NumberOfCleaners 

as your desired column!

SQL Date difference in hours minutes and seconds, How do you calculate time difference between hours minutes and seconds in SQL Server? First if you are calculating from an amount of time, 8 hours) vice from a specific date and time (8:00 am today), Do not use a datetime field. Determine which interval of time is the minimum you need to show (hours and minutes or hours minutes seconds)

If I understand you correctly this could help you:

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

Of course you would need to add the following hours as well.

I've splitted everything up, so it is easier to understand. But you should be able to write it in one line and without variables as well

Hope this helps.

Getting started with SQL Server returned are like this 192:22 or 105:01 i guess bcz it can't multiply :22, :01 part with @BsalaryHour. so how to  APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse Defines a time of a day. The time is without time zone awareness and is based on a 24-hour clock.

like that 40 employee. i want the total work hours by multiplying both the fields. Can any one please help me. Regards John PHilip. Multiply TIME in SQL Server. Ask Question Asked 1 year, 6 months ago. TIME isn't a duration or something you can multiply, it is a point in time, so I suspect you

Add hour-to-seconds, minutes-to-seconds and remaining seconds part into resultant @total integer variable. The second SELECT statement re-calculates the time parts (hour, minute, second) of the @total time in seconds. This sql calculation is simple. Take MOD to 60 of @total time for seconds. APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse Multiplies two numbers and sets a value to the result of the operation. For example, if a variable @x equals 35, then @x *= 2 takes the original value of @x, multiplies by 2 and sets @x to that new value (70).

Like any other enterprise RDBMS system, SQL Server ships with a total number of days/time it takes to resolve a customer complaint. Consequently, for a more accurate week calculation, we should always multiply the  * (Multiply) (MDX) 06/04/2018; 2 minutes to read; In this article. Performs an arithmetic operation that multiplies two numbers. Syntax Numeric_Expression * Numeric_Expression Parameters. Numeric_Expression A valid Multidimensional Expressions (MDX) expression that returns a numeric value. Return Value

Comments
  • Why are you wrapping everything in double quotes? It makes this absolutely horrible to look at. As posted this is just a wall of text that is indecipherable.
  • because this is a Expression from Devexpress without it the solution wont work.
  • also what you need to know is just this part CONVERT(TIME,"ClientBooking"."TimeEnd" - "ClientBooking"."TimeStart" )
  • Try this - kodyaz.com/t-sql/calculate-time-operations-in-sql-server.aspx
  • What are the data types of TimeEnd and TimeStart? TIME isn't a duration or something you can multiply, it is a point in time, so I suspect you shouldn't be using that data type here at all. Do you need to multiply by the number of minutes? Don't you already do that (3rd last expression)?
  • but i also need the minutes xD
  • So you can use minute instead of hour and divide the result by 60 if you need it in hours
  • When you want "hours" in this situation you usually want to use minutes and then convert to hours your final result. 1 hour 59 minutes may not mean 1 hour to you.
  • the problem with dividing with 60 is: if I have 121 minutes and divide that for 60 I will not get 2:02 minutes I will get: 2.033333...... So.. looks like there is no way to do what i want in the SQL side.
  • I will try this and get you to know asap
  • But with the result, you wont be able to multiply with another field.. To multiply you would need to change the part after the then, and keep it as an int...
  • not a very charmin solution but it does the job. gonna have to increment this List up to 100 hours, but i will probably do a macro