在SQL Server中,经度和纬度可以使用浮点数类型 FLOAT 或者 DECIMAL 来存储。如果需要高精度的计算,建议使用 DECIMAL 类型,例如 DECIMAL(10, 8),其中的 10 表示总位数,8 表示小数点后的位数,可以保证经度和纬度的精度达到小数点后八位。
另外,SQL Server 2008 引入了空间数据类型(Spatial Data Type),可以用来存储地理信息数据,包括经度和纬度。Spatial Data Type 提供了一些专门的地理信息处理函数,例如计算两个点之间的距离、判断一个点是否在一个多边形内部等。如果需要进行地理信息处理,建议使用 Spatial Data Type 存储经度和纬度信息。
在使用 Spatial Data Type 存储经度和纬度时,可以使用 GEOGRAPHY 数据类型来表示空间数据。例如,可以使用如下语句创建一个包含经纬度信息的 GEOGRAPHY 对象:
CREATE TABLE Locations
(
LocationID INT PRIMARY KEY,
LocationName VARCHAR(50),
LocationPoint GEOGRAPHY
);
INSERT INTO Locations VALUES (1, 'Beijing', geography::Point(39.9042, 116.4074, 4326));
其中,Point 函数用于创建一个 GEOGRAPHY 对象,函数参数依次为纬度、经度和坐标系(这里使用的是 WGS84 坐标系)。
以上是SQL Server中存储经纬度的两种方式,具体应该根据需求和数据特点选择合适的方式。