Если вы можете изменить таблицу, вы можете добавить столбец datetime, а затем запустить обновление, чтобы заполнить его правильными данными.
Если вы не можете изменить таблицу, то вы можете создать новую таблицу со столбцом datetime, извлечь ключи из таблицы, в которую вы хотите запросить ее, и применить для всех таблиц противоречие между иностранными ключами. Затем вы можете заполнить столбец datetime, как и раньше, а затем присоединиться к таблицам при выполнении запросов.
Если вы не можете ничего изменить, то, я думаю, вы могли бы попробовать сравнить свое решение с решением, в котором вы преобразуете дату varchar в datetime на лету (например, с помощью определенной пользователем функции). Это на самом деле может работать быстрее.
Надеюсь, это поможет вам ...