I'm doing abit of self learning on indexes & performance in a SQL Server. I'm using stackoverflow's database as my sample DB for this activities.
For my testing, I'm using the Users table & create a non-clustered index on the CreationDate column which is a datetime data type.
I then did a simple query to search for users where the creation date is between certain dates. However I notice optimizer uses the primary key clustered index instead of the non-c index. Any reason why optimizer behaves that way? Is it because the predicate is a range of dates?

I then tried to force the optimizer to use index and I notice the optimizer does uses the non-c index but it also perform a keylookup on the PK. Any reason for this behaviour?
