CREATE FUNCTION toDistance (
curlat double,
curlon double,
shoplat double,
shoplon double
)
RETURNS double
BEGIN
DECLARE dis double;
SET dis = acos(sin(curlat * 3.1415 / 180) * sin(shoplat * 3.1415 / 180) + cos(curlat * 3.1415 / 180) * cos(shoplat * 3.1415 / 180) * cos(curlon * 3.1415 / 180 - shoplon * 3.1415 / 180)) * 6380;
RETURN dis;
END;
执行:select toDistance(117.310000, 39.130000,117.320000, 39.230000);
select toDistance('117.310000', '39.130000','117.320000', '39.230000');
输出:5.228928946460395