首页 > 数据库技术 > 详细

经纬度转换 sql 自定义函数

时间:2020-05-12 12:58:27      阅读:101      评论:0      收藏:0      [点我收藏+]

数值转度分秒

Create function [dbo].[ConvertDigitalToDegrees](@digitaldegree numeric(18, 2))
returns varchar(50)
as 
begin
declare @num numeric(18, 2)=60
declare @result int=@digitaldegree
declare @tmp numeric(18, 2)=(@digitaldegree-@result)*@num
declare @minute int=@tmp
declare @second numeric(18, 2)=(@tmp-@minute)*@num
declare  @degrees  varchar(50)= ‘‘+cast(@result as  varchar) +°+cast(@minute as varchar)++ cast(@second  as varchar)+
  return @degrees
end

度分秒转数值

Create  function  [dbo].[DegreesToDigital](@degrees varchar(20))
returns  varchar(20)
as
begin
declare @num numeric(18,2)=60
declare @digitalDegree decimal(18,2)=0.0
declare @d int=charindex(°,@degrees)
if(@d<0)
begin
return @digitalDegree
end
declare @degree varchar(20)=left(@degrees,@d-1)
set @digitalDegree+=cast(@degree as decimal(18,2))
declare @m int=charindex(,@degrees)
if(@m<0)
begin
return @digitalDegree
end
declare @minute varchar(20)=substring(@degrees,@d+1,@m-@d-1)
set @digitalDegree+=(cast(@minute as decimal(18,2))/@num)
 declare @s int=charindex(,@degrees)
 if(@s<0)
 begin
 return @digitalDegree
 end
 declare @second varchar(20)=substring(@degrees,@m+1,@s-@m-1)
 set @digitalDegree+=(cast(@second as decimal(18,2))/(@num*@num))
 return @digitalDegree
end

 

经纬度转换 sql 自定义函数

原文:https://www.cnblogs.com/wxxf/p/12875053.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!