Tracking the last execution date of a query
When were your servers last booted? Unless you have some form of auditing running, then that is a far back as you will be able to query the sys.dm_exec_query_stats view and sys.dm_exec_sql_text() table-valued function.

You can then use the following statement to see when a statement was last executed:

SELECT sdest.TEXT , sdeqs.last_execution_time, *
FROM   sys.dm_exec_query_stats AS sdeqs
   CROSS APPLY sys.dm_exec_sql_text(sdeqs.sql_handle) AS sdest


However, there are some restrictions with this approach:


Size of Memory reserved for SQL Server instance
Execution of DBCC FREEPROCCACHE
Execution of DBCC FREESESSIONCACHE
Execution of DBCC FREESYSTEMCACHE('ALL')
other possible reasons for SQL Server to free up cache including, but not limited to:


Server reboots
Instance restarts