我想问一下用于存储纬度和经度的SQL Server数据类型。
以下是一个例子:
ys
如果数据类型Latitude: -7.39755000
Longitude: 107.80627000
,它将无法保存,因为SQL Server说:
无法将数字数据转换为数字
我记得。
但如果类型数据为decimal
,则SQL Server将转换float
,因此纬度将为0
。所以我想出来用-7.39755000
替换最后的0
。它的位置会不准确吗?
或者坚持1 - 9
,但如何避免警告?
答案 0 :(得分:33)
DECIMAL(9,6)
是我通常用于两者的。如果您需要更高的精确度,请尝试DECIMAL(12,9)
。
您也可以使用GEOGRAPHY
数据类型,但它会占用更多空间,如果您需要SQL Server空间功能(索引等),我建议您这样做。
对于实际转换,请尝试以下操作:
CAST(@YourLat AS DECIMAL(12,9))