Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Błąd SQL 2012 dla funkcji ACOS

Wygląda na to, że próbujesz obliczyć odległość między dwoma punktami na Ziemi. Ułatw sobie życie i korzystaj z wbudowanego typu geograficznego.

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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja w SQL Server 2008 podobna do GREATEST w mysql?

  2. Jak używać zmiennej tabeli w dynamicznej instrukcji sql?

  3. Jak wycofać lub zatwierdzić transakcję w SQL Server

  4. konfiguracja lokalnego serwera na serwerze sql 2005

  5. Skuteczny sposób na usuwanie duplikatów wierszy z milionów rekordów