古瀛洲,实名举报朱泽君,走进科学古墓
sql server 根据地图经纬度计算距离的公式
go
--创建经纬度距离计算函数
createfunction [dbo].[fngetdistance]
--latbegin 开始经度
--lngbegin 开始维度
(@latbegin real, @lngbegin real, @latend real, @lngend real)
returnsfloat
as
begin
--距离(千米)
declare @distance real
declare @earth_radius real
set @earth_radius = 6378.137
declare @radlatbegin real,
@radlatend real,
@radlatdiff real,
@radlngdiff real
set @radlatbegin = @latbegin *pi()/ 180.0
set @radlatend = @latend *pi()/ 180.0
set @radlatdiff = @radlatbegin - @radlatend
set @radlngdiff = @lngbegin *pi()/ 180.0 - @lngend *pi()/ 180.0
set @distance = 2 *asin(
sqrt(
power(sin(@radlatdiff / 2), 2)+cos(@radlatbegin)*cos(@radlatend)
*power(sin(@radlngdiff / 2), 2)
)
)
set @distance = @distance * @earth_radius
--set @distance = round(@distance * 10000) / 10000
return @distance
end
@distance的单位为:千米
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
sql某个日期是当年的第几周
/* *周一作为一周的开始 *当年的1月1号所在的周算作第一周 */ CREATE function GetWeekIndexFirstDate ( @...
[阅读全文]
-
-
数据库SQL---范式
1、数据冗余导致的问题:冗余存储、更新异常、插入异常、删除异常。 2、函数依赖:一种完整性约束。 在关系模式r(R)中,α属于R,β属于R。 1)α函数...
[阅读全文]
-
-
数据库SQL---查询
1、查询所有列 select *from emp;--*表示所有的,from emp表示从emp表中查询。 2、查询指定列 select empno,e...
[阅读全文]
-
-
-
-
-
网友评论