У меня есть следующий оператор SELECT
для расчета RADIANS
и COS
.SQL Server: Ошибка преобразования типа данных varchar в float
SELECT COS(RADIANS(latitude)) as Lat
FROM tbl_geometry;
Но я получаю сообщение об ошибке:
Error converting data type varchar to float.
Мои попытки:
Покушение # 1:
select Cos(convert(float, (Radians(convert(float, latitude))))) as Lat
from tbl_geometry;
Попытка # 2.
select Cos(Radians(convert(float, latitude))) as Lat
from tbl_geometry;
Обе попытки приводят к той же ошибке.
Примечание: столбец Latitude
имеет тип varchar
.
Похоже, ваш столбец широты содержит недопустимые данные с плавающей запятой. – jarlh
@jarlh, Да, ты прав! У меня есть некоторые недопустимые данные в этом столбце, и это потому, что это тип 'varchar', который содержит« NULL, abc »и т. Д. Как преодолеть это? – MAK
Лучший способ «преодолеть» это - прекратить использование типа данных varchar, когда вам нужна информация о поплавке. И если NULL вызывает проблемы, вы должны сделать столбец недействительным. Если вы правильно структурируете свои структуры данных, извлечение информации будет довольно безболезненным. –