- What is the difference between the following two sentences?
In everyday usage, there is no difference between the 2 sentences. However, there is a very subtle difference between the two--more on this later.
- Are they interchangeable in formal writing?
Again, in everyday writing they may be interchangeable but I am not sure about formal writing. You may decide for yourself based on the subtle difference I have arrived at below.
The main source of confusion in the two sentences is the fact that they are both written in Passive Voice. In order to understand the subtle difference and help us explain the difference easily, let's change the sentences to their Active Voice
Passive Voice (1st sentence): The system has old records that have not been deleted.
Active Voice (2nd sentence): The system has old records that Bob has not deleted.
Passive Voice (1st sentence): The system has old records that are not deleted.
Active Voice (2nd sentence): The system has old records that Bob did not delete.
Now let's further simplify the sentences to subject, verb, object and remove the extra information as below:
Bob has not deleted the records.
Bob did not delete the records.
Now that we have the sentences in a simple and active form, we can apply the reasoning as documented on Merriam-Webster. According to that source
Use the simple past when the action started in the past, finished in the past, and is not continuing now. Use the present perfect when the action started in the past and is continuing now.
Now applying the reasoning above to our sentences, below is the subtle difference:
"Bob has not deleted the records." means that Bob did neither start the act of deletion in the past nor is he continuing deletion right now. In other words if he did not start, he could not possibly continue.
"Bob did not delete the records." means that Bob did neither start the act of deletion in the past nor finished deletion in the past. In other words if he did not start in the past, he could not possibly finish in the past.
The cited source indicates we should try to state time when a sentence is in the simple past tense.
The simple past tells us that an action happened at a certain time in the past, and is not continuing anymore. It doesn't tell us anything about when an action happened, so more information needs to be given with this verb form, such as when the action took place.
Therefore, we may want to restructure the sentence like this:
Bob did not delete the records as of 9:00 AM today.
The system has old records that are not deleted as of 9:00 AM today.