As far as i'm aware you can only get this if you are running a [backup]. Try the script below from @SQLChicken and only works on 2005 and above. SELECT session_id, start_time, status, command, percent_complete, estimated_completion_time, estimated_completion_time /60/1000 as estimate_completion_minutes, --(select convert(varchar(5),getdate(),8)), DATEADD(n,(estimated_completion_time /60/1000),GETDATE()) as estimated_completion_time FROM sys.dm_exec_requests where command = 'BACKUP DATABASE' OR command = 'RESTORE DATABASE' :
The primary limiting factor is the speed of your disks because you have to read and write each page of the database during the backup operation. If you know how fast your disks can do this, you can make a rough calculation as to how long it will take based on the number of pages in your entire database, but there's no way to account for resource contention, etc., ahead of time.