I think your shipdate column is datetime datatype and not varchar..
So you have to convert.
ALTER PROCEDURE [dbo].[Sp_GetTotalOrders]
@DateFrom NVARCHAR(50)
AS
Declare @curDate nvarchar(50);
BEGIN
set @curDate = @DateFrom + %;
select count(a.Id) TotalCount, Convert(Time,Shipdate) ShipTime from
ShipmentDetail a inner join Items b on a.Id = b.ShipmentID
where CONVERT(DATE,shipdate,101) like @curDate
Group by Convert(Time,Shipdate) order by ShipTime
This will still give you error because of group by. You have to add columns in select statement to group by. Wht i tried above is getting time from datetime column where date is something.