Тип данных широты и долготы 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))