CREATE DEFINER = CURRENT_USER FUNCTION GET_DISTANCE (LatBegin float,LngBegin float,LatEnd float,LngEnd float)
RETURNS float
BEGIN
DECLARE Distance FLOAT
DECLARE EARTH_RADIUS FLOAT
SET EARTH_RADIUS = 6378137.00
DECLARE dlat FLOAT
DECLARE dlng FLOAT
SET LatBegin = LatBegin * PI()/ 180.0
SET LngBegin = LngBegin * PI() / 180.0
SET LatEnd = LatEnd * PI() / 180.0
SET LngEnd = LngEnd * PI() / 180.0
SET dlat = LatBegin - LatEnd
SET dlng = LngBegin - LngEnd
SET Distance = (1-cos(dlat))/2.0+cos(LatBegin)*cos(LatEnd)*((1-cos(dlng))/2.0)
SET Distance = asin(sqrt(Distance)) * EARTH_RADIUS *2.0
SET Distance = Round(Distance * 10000,2) / 10000
RETURN Distance
END
[Err] 1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'DECLARE v_dlat FLOAT; 附近使用的正确语法;声明 dlng 浮动;SET LatBegin = LatBegin * PI(' 在第 8 行