无法将 SSMS 中的列转换为地理数据类型
Unable to convert column in SSMS to data type geography
我目前有一项任务需要比较特定位置的经纬度距离,我有一个 Excel 电子表格,其中包含大量经纬度数据,需要将这些数据类型转换为geography
.
问题是,在找出距离之前,我需要将列转换为 geography
。我尝试使用 SSMS 的导入向导,但不幸的是,我没有将数据类型更改为地理的选项。将数据类型设置为 decimal
并尝试手动更改会出现错误:
Explicit conversion from data type decimal to Test.sys.geography is not allowed.
我想手动创建一个 table,但问题是纬度和经度的行数很大。
请协助我将列转换为 geography
。
将您的 Excel 电子表格作为工作 table 导入,然后制作 INSERT INTO SELECT
that transform to geometry you decimal
看看这里对你有帮助:
您可以创建一个名为 GeoLocation 的新列,它将把经纬度列转换为地理信息。也许您可以将此列创建为计算列。
ALTER TABLE [dbo].[Your Table Name]
ADD [GeoLocation] GEOGRAPHY
然后使用以下 SQL 查询更新此列
UPDATE [dbo].[Your Table Name]
SET [GeoLocation] = geography::STPointFromText('POINT(' + CAST([Longitude] AS VARCHAR(20)) + ' ' +
CAST([Latitude] AS VARCHAR(20)) + ')', 4326)
可以在此处找到更多详细信息link
http://www.sql-server-helper.com/sql-server-2008/convert-latitude-longitude-to-geography-point.aspx
我目前有一项任务需要比较特定位置的经纬度距离,我有一个 Excel 电子表格,其中包含大量经纬度数据,需要将这些数据类型转换为geography
.
问题是,在找出距离之前,我需要将列转换为 geography
。我尝试使用 SSMS 的导入向导,但不幸的是,我没有将数据类型更改为地理的选项。将数据类型设置为 decimal
并尝试手动更改会出现错误:
Explicit conversion from data type decimal to Test.sys.geography is not allowed.
我想手动创建一个 table,但问题是纬度和经度的行数很大。
请协助我将列转换为 geography
。
将您的 Excel 电子表格作为工作 table 导入,然后制作 INSERT INTO SELECT
that transform to geometry you decimal
看看这里对你有帮助:
您可以创建一个名为 GeoLocation 的新列,它将把经纬度列转换为地理信息。也许您可以将此列创建为计算列。
ALTER TABLE [dbo].[Your Table Name]
ADD [GeoLocation] GEOGRAPHY
然后使用以下 SQL 查询更新此列
UPDATE [dbo].[Your Table Name]
SET [GeoLocation] = geography::STPointFromText('POINT(' + CAST([Longitude] AS VARCHAR(20)) + ' ' +
CAST([Latitude] AS VARCHAR(20)) + ')', 4326)
可以在此处找到更多详细信息link http://www.sql-server-helper.com/sql-server-2008/convert-latitude-longitude-to-geography-point.aspx