When you do SELECT * FROM table
you tell the machine to load a bunchload of data from the database into your client software (SSMS?). Simply fetching the data from disk probably doesn't take all that much time, converting it to something that's transportable, putting it on the network (or shared memory if you run locally) and then getting it back from 'transport-mode' to 'data-mode' all in all will take some time but if you're not running over a telephone line should be fairly fast too. However, loading 9 million rows into the grid of SSMS WILL take quite a lot of time, especially if there is a special column like an xml involved.
To avoid that side-effect, either do SELECT COUNT(*) FROM table
instead or have a look at How to Execute SQL Query without Displaying results
From the comments it seems you want to be able to move data from one table to another based on a date-field, presumably field4.
You can do that easily by using the syntax:
INSERT tableB (field1, field2, ...)
SELECT field1, field2
FROM tableB
The data will be copied on the server itself, nothing needs to go over the wire and all your client machine needs to show is (9 million rows affected)
Off course, this will not be instantaneous either, after all, the data needs to be read from disk and written back to disk elsewhere. But it should be fairly quick.
If you want to be able to filter on your datetime field, then it's probably a good idea to have an index on that field. Having the index will allow the system to quickly find all 'matching' records it needs to copy, not having an index means it will have to read each and every record to verify if it might or might not match your criteria.
PS: since there is no such a thing as a free lunch. Having the index there means that MSSQL needs to keep the index up-to-date at all times. If you add, remove or update records then both the table and the index will need to be updated. Next to that, the index will take extra space in the database too. It's up to you to decide if your need to have quick responses when querying for a given datetime (or range) is more important than having the (little) overhead when making changes to the table (INSERT/UPDATE/DELETE), or not.