Молчун
Зарегистрирован: 29 September 2002
Сообщения: 18
Примеры кода: 0
|
RE: Проблемы с процедурой |
16 December 2002 20:28 |
|
|
|
|
ORDER BY
CASE @SortColumn
When 'InstID' Then InstID
When 'InstName' Then InstName
When 'CityName' Then CityName
When 'CreatedDate' Then CreatedDate
END
Syntax error converting datetime from character string.
сводит меня с ума. Что делать?
В BOL про result types в CASE написано:
Returns the highest precedence type from the set of types in result_expressions and the optional else_result_expression.
Наиболее приоритетным типом для Вашего CASE будет datetime (см. BOL топик Data Type Precedence). CASE пытается неявно преобразовать тип результата к datetime. С полями типа int и самим datetime все проходит гладко, а вот строковые переменные неявному преобразованию к datetime в общем случае не поддаются. Это легко наблюдать, слегка изменив Ваш опратор CASE:
CASE @SortColumn
When 'InstID' Then cast(InstID as datetime)
When 'InstName' Then cast(InstName as datetime)
When 'CityName' Then cast(CityName as datetime)
When 'CreatedDate' Then cast(CreatedDate as datetime)
END
Успехов.
|
|