First, is this the proper forum for MS SQL tsql questions? Why am I seeing only 114 questions?
There is also a Transact-SQL
tag. But it seems that many that have T-SQL questions post them to the regular SQL Server
tag.
Of the alternatives you list, I would definitely recommend the first. Having dates in the wrong data type (numeric, strings), only leads to grief.
If that for some reason is not feasible, for instance, because some smartie are storing values 20250200 to cover the entire month, you could add a computed column to the table:
ConvertedDate AS try_cast(cast(TransDate AS char(8)) AS date)
and add an index on that column. Change the view to use the new column.
try_cast was introduced in SQL 2012, so that should not be an issue for you.