Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL 2012-Fehler für die ACOS-Funktion

Es sieht so aus, als ob Sie versuchen, die Entfernung zwischen zwei Punkten auf der Erde zu berechnen. Machen Sie sich das Leben leichter und verwenden Sie den integrierten Geografietyp.

DECLARE @lat1 DECIMAL(12, 10) ,
    @lon1 DECIMAL(12, 10) ,
    @lat2 DECIMAL(12, 10) ,
    @lon2 DECIMAL(12, 10)
DECLARE @dist FLOAT

SELECT  @lat1 = 51.1790825000 ,
        @lon1 = 4.1590020000 ,
        @lat2 = 51.1790825000 ,
        @lon2 = 4.1590020000

DECLARE @p1 GEOGRAPHY = GEOGRAPHY::Point(@lat1, @lon1, 4326) ,
    @p2 GEOGRAPHY = GEOGRAPHY::Point(@lat2, @lon2, 4326)

SELECT  @dist = @p1.STDistance(@p2)