Не хранить значения даты / времени в виде строк.Это может вызвать проблему.
Следующая большая проблема - это неявное преобразование.Если вам нужно преобразовать значения, сделайте это явно.Итак:
Where try_convert(datetime, CounterDateTime) >= DateAdd(hour, -1, getDate())
У вас явно есть значения, которые невозможно преобразовать.Ты не знаешь почему.Вы можете найти эти значения с помощью запроса:
select CounterDateTime
from t
where try_convert(datetime, CounterDateTime) is null and
CounterDateTime is not null;
Это вернет ненулевые значения, которые не могут быть преобразованы.