Execute the following query:
SELECT r. session_id,r .command, CONVERT(NUMERIC (6, 2),r .percent_complete) AS [Percent Complete],CONVERT( VARCHAR(20 ),DATEADD( ms,r .estimated_completion_time, GetDate()),20 ) AS [ETA Completion Time], CONVERT(NUMERIC (6, 2),r .total_elapsed_time/ 1000.0/60.0 ) AS [Elapsed Min], CONVERT(NUMERIC (6, 2),r .estimated_completion_time/ 1000.0/60.0 ) AS [ETA Min], CONVERT(NUMERIC (6, 2),r .estimated_completion_time/ 1000.0/60.0 /60.0) AS [ETA Hours], CONVERT(VARCHAR (100),( SELECT SUBSTRING (text, r.statement_start_offset /2, CASE WHEN r.statement_end_offset = - 1 THEN 1000 ELSE (r. statement_end_offset-r .statement_start_offset)/ 2 END) FROM sys .dm_exec_sql_text( sql_handle))) FROM sys .dm_exec_requests r WHERE command IN ('RESTORE DATABASE' ,'BACKUP DATABASE')
or this one:
SELECT percent_complete, start_time, status, command , estimated_completion_time as est_complete, (estimated_completion_time / 1000/60 /60/ 24) as Days , ((estimated_completion_time / 1000/60 /60) % 24 ) as Hours, ((estimated_completion_time / 1000/60 ) % 60) as Mins, ((estimated_completion_time / 1000) % 60) as Secs, cpu_time, ((total_elapsed_time / 1000/60 ) % 60) as 'Total Elapsed Mins' FROM sys .dm_exec_requests WHERE percent_complete > 0 ORDER BY start_time DESC