На Microsoft SQL Server у вас есть geographic functions. Вы можете использовать сценарий T-SQL следующим образом:
DECLARE @givenLatitude float
, @givenLongitude float
, @givenLocation geography
, @maximumDistance float ;
SET @givenLatitude = ... ;
SET @givenLongitude = ... ;
SET @givenLocation = geography::STGeomFromText('POINT(' + CAST(@givenLongitude AS VARCHAR(20)) + ' ' +
CAST(@givenLatitude AS VARCHAR(20)) + ')', 4326) ;
SELECT *
FROM Locations
WHERE geography::STGeomFromText('POINT(' + CAST([Longitude] AS VARCHAR(20)) + ' ' +
CAST([Latitude] AS VARCHAR(20)) + ')', 4326)
.STDistance(@givenLocation) <= @maximumDistance ;
Wich DBMS вы используете? По крайней мере, на Microsoft SQL Server у вас есть географические функции: https://msdn.microsoft.com/en-us/library/cc280766.aspx – Shago