Возможно, проблема не в идентификаторе пользователя, ваше изменение должно было это исправить. Скорее всего, проблема связана с одним из других полей сравнения, причем JoinDate является ведущим претендентом. (Я не могу исправить это для вас, потому что я не знаю, какой у вас формат строковой даты).
ОК, если формат даты - мм / дд / ггг, то вы хотите изменить сравнение фильтров JoinDate на:
OR CONVERT(Varchar(10), JoinDate, 101) LIKE '%{0}%'
ОК, основываясь на сообщениях об ошибках, ошибка не исходит от SQL Server, но должна исходить от чего-то на вашей стороне (клиента). Что вам нужно сделать, это выяснить, что это такое, найти его в своем коде и затем либо
1) попробуйте установить режим «PassThrough» (или «Passthru»), чтобы он не пытался сначала его проверить,
или 2) найдите версию SQL этого средства и измените CAST () на соответствующую функцию. Например, ODBC будет делать именно то, что вы видите здесь, и, поскольку ODBC SQL не поддерживает функцию CAST, вы должны использовать вместо этого функцию ODBC SQL CONVERT ().
Обратите внимание, что в ODBC также есть опция сквозного режима.