为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【问题描述】*:
mysql是可以通过经纬度算出两地距离,方法参考如下:
ROUND(
6371.393 * 2 * ASIN(
SQRT(
POW( SIN( ( 23.096783458623 * PI() / 180 - ra.latitude * PI() / 180 ) / 2 ), 2 ) + COS( 23.096783458623 * PI() / 180 ) * COS( ra.latitude * PI() / 180 ) * POW( SIN( ( 113.27660228564 * PI() / 180 - ra.longitude * PI() / 180 ) / 2 ), 2 )
)
)* 1000 < 3000
)
达梦也可以
1.先创建rad函数
CREATE OR REPLACE
FUNCTION RAD(d number)
RETURN NUMBER
is
PI number :=3.141592625;
begin
return d* PI/180.0;
end ;
2.再创建GetDistance函数
CREATE OR REPLACE
FUNCTION GetDistance
(
lat1 number,
lng1 number,
lat2 number,
lng2 number)
RETURN NUMBER
is
earth_padius number := 6378.393;
radLat1 number := rad(lat1);
radLat2 number := rad(lat2);
a number := radLat1 - radLat2;
b number := rad(lng1) - rad(lng2);
s number := 0;
begin
s := 2 * Asin(Sqrt(power(sin(a / 2), 2) + cos(radLat1) * cos(radLat2) * power(sin(b / 2), 2)));
s := s * earth_padius;
s := Round(s * 10000) / 10000;
return s;
end;
你好,麻烦问下PI number :=3.141592625;这一句一直报格式错误是什么原因啊?