SQL Server纬度和经度数据类型

时间:2015-06-24 04:01:50

标签: sql-server google-maps

我想问一下用于存储纬度和经度的SQL Server数据类型。

以下是一个例子:

ys

如果数据类型Latitude: -7.39755000 Longitude: 107.80627000 ,它将无法保存,因为SQL Server说:

  

无法将数字数据转换为数字

我记得。

但如果类型数据为decimal,则SQL Server将转换float,因此纬度将为0。所以我想出来用-7.39755000替换最后的0。它的位置会不准确吗?

或者坚持1 - 9,但如何避免警告?

1 个答案:

答案 0 :(得分:33)

DECIMAL(9,6)是我通常用于两者的。如果您需要更高的精确度,请尝试DECIMAL(12,9)

您也可以使用GEOGRAPHY数据类型,但它会占用更多空间,如果您需要SQL Server空间功能(索引等),我建议您这样做。

对于实际转换,请尝试以下操作:

CAST(@YourLat AS DECIMAL(12,9))