Conversion failed when converting the varchar value 'Hours' to data type int. This is my query:

Sum(Cast(Cast(DATEDIFF(HH, ld_time_tracker_start_time,
    fld_time_tracker_end_time)%3600/60 As int) +' Hours'+ 
Cast(DATEDIFF(MINUTE, ld_time_tracker_start_time,
 fld_time_tracker_end_time)As int )+'Minutes' As Int)) 
As [Time Spent(In hrs)]

I modified the above Code To:

+Cast('Hours' As Int)

... and got the error message:

Conversion failed when converting the varchar value ' Hours' to data type int


This is not clear what output is needed. You are trying to convert text strings to int. This obviously does not work. Besides this type of formatting might fit better outside of SQL Server.

If you want something like 5 Hours 15 Minutes you can try this query:

[Time Spent(In hrs)] =
            DATEDIFF(hour, ld_time_tracker_start_time, ld_time_tracker_end_time)                     
    as varchar(10))
    +' Hours '+ 
            DATEDIFF(minute, ld_time_tracker_start_time, ld_time_tracker_end_time) % 60       
    as varchar(10))
+' Minutes'

Note that I have replaced HH by hour. This is easier to read and understand and it avoid mistakes. See DATEDIFF (Transact-SQL).

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.