Как уже говорили другие, ваш дизайн базы данных в основном плохой.Учитывая, что столбец может вообще не быть датой, вам нужно использовать DateTime.TryParse или DateTime.TryParseExact, чтобы написать что-то, что будет работать в LINQ to Objects .В LINQ to SQL это не сработает, так как вам нужно использовать лямбда-выражение с блоком в качестве тела, и его нельзя преобразовать в дерево выражений.
Кроме того, вы также возникла проблема с определением ожидаемого формата даты - что является естественным следствием хранения дат в текстовом поле, а не в качестве собственного поля на основе даты.
Если ваша датаформат был yyyy-MM-dd (или yyyy / MM / dd) было бы возможно сделать что-то, что по крайней мере приблизительно правильный запрос, выполнив сравнение строки, например, сказав, что значение должно быть между«2011-02-02» и «2099-12-31», например.Даже в этом случае он будет соответствовать значениям, таким как «201, это на самом деле не дата».
Если у вас не слишком много записей, вы всегда можете выполнить фильтрацию на стороне .NET, а не в SQL- это не идеально, но если у вас есть для работы со сломанной схемой, это, вероятно, самый надежный вариант.Однако, если вообще возможно , вам следует изменить способ хранения данных.