Eine ungültige Gleitkomma-operation aufgetreten. SQL Server 2008

Ich habe seltsame problem mit diesem code: wenn ich ihn wie unten gezeigt, bekomme ich Fehler:

Eine ungültige Gleitkomma-operation aufgetreten.

Aber, wenn ich parameter ändern @Longitude zu -98.508730 (beachten Sie nur die Letzte Ziffer geändert) code funktioniert Prima.

Code-soll-Listen-Eigenschaften in @MilesRadius um einige LatLng Punkt.

@Latitude und @Längen-Parameter sind vom gleichen Typ wie die Felder Längengrad und Breitengrad in der Tabelle Adresse.

Was kann ich hier tun? Danke.

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
  • Ihnen fehlt der Teil der Abfrage, wo Sie Variablen deklarieren, fügen Sie bitte, dass auf Ihre Frage
  • Ich habe. Sorry vergessen. Die Parameter Breite und Länge sind von der gleichen Art wie Längen-und Breitengrad-Felder in die Adresse-Tabelle. Decimal(10,6)
InformationsquelleAutor bobetko | 2012-01-12
Schreibe einen Kommentar