Тип данных широты и долготы SQL Server
Я хочу спросить, какой тип данных SQL Server используется для хранения широты и долготы.
Вот пример:
Latitude: -7.39755000
Longitude: 107.80627000
Если тип данных decimal
, он не будет сохранен, поскольку SQL Server сказал:
не может преобразовать числовые данные в числовые
как я помнил.
Но если данные типа были float
, SQL Server преобразует 0
, поэтому широта будет -7.39755000
. Поэтому я считаю, что заменить 0
на 1 - 9
последним. будет ли это местоположение неточным?
Или, может быть, придерживайтесь decimal
, но как избежать предупреждения?
Ответы
Ответ 1
DECIMAL(9,6)
- это то, что я обычно использую для обоих. Если вам нужно больше точности, попробуйте DECIMAL(12,9)
.
Вы также можете использовать тип данных GEOGRAPHY
, но он займет больше места, и я бы рекомендовал это, только если вам нужны пространственные объекты SQL Server (индексация и т.д.).
Для фактического преобразования попробуйте это:
CAST(@YourLat AS DECIMAL(12,9))