curLongitude--当前经度,curLatitude--当前纬度;longitude --数据库经度字段,latitude --数据库纬度字段
select ( 6371 * acos( cos( radians(#curLatitude#) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(#curLongitude#) ) + sin( radians(#curLatitude#) ) * sin( radians( latitude ) ) ) ) as distance from TABLE;
需要保留小数点后一位,四舍五入,需要先将上面的double类型结果转换为numeric,然后再用round()做计算;
SELECT round( cast(6371 * acos( cos( radians(#curLatitude#) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(#curLongitude#) ) + sin( radians(#curLatitude#) ) * sin( radians( latitude ) ) ) as numeric), 1) as distance FROM TABLE;