Ho problema strano con questo codice: se l'eseguo come illustrato di seguito ottengo l'errore:Si è verificata un'operazione in virgola mobile non valida. SQL Server 2008
An invalid floating point operation occurred.
Ma se cambio parametro @Longitude
a -98,508730 (preavviso solo ultima cifra cambiato) Il codice funziona bene.
Il codice deve elencare le proprietà in @MilesRadius
attorno ad alcuni punti LatLng.
I parametri @Latitude e @Longitude sono dello stesso tipo dei campi di longitudine e latitudine nell'indirizzo della tabella.
Cosa posso fare qui? Grazie.
DECLARE @Latitude decimal (10,6);
DECLARE @Longitude decimal (10,6);
DECLARE @MilesRadius int;
SET @Latitude = 29.607654
SET @Longitude = -98.508731
SET @MilesRadius = 5
SELECT ADR.LineOne as address,
ADR.City as city,
ADR.Latitude as latitude,
ADR.Longitude as longitude,
((3959 * acos(cos(radians(@Latitude)) * cos(radians(ADR.Latitude)) * cos(radians(ADR.Longitude) - radians(@Longitude)) + sin(radians(@Latitude)) * sin(radians(ADR.Latitude))))) as distance
FROM Shared.Address ADR
WHERE ADR.Latitude IS NOT NULL AND
ADR.Longitude IS NOT NULL AND
(3959 * acos(cos(radians(@Latitude)) * cos(radians(ADR.Latitude)) * cos(radians(ADR.Longitude) - radians(@Longitude)) + sin(radians(@Latitude)) * sin(radians(ADR.Latitude)))) < @MilesRadius
ORDER BY distance
vi manca la parte della query in cui si dichiarano le variabili, si prega di aggiungere che alla tua domanda – Lamak
ho fatto. Scusa se l'è dimenticato. I parametri Latitudine e Longitudine sono dello stesso tipo dei campi di latitudine e longitudine nella tabella Indirizzi. Decimale (10,6) – bobetko