は、私はこのコードで奇妙な問題を抱えている:私はそれを実行する場合、私はエラーを取得し、以下に示すように:無効な浮動小数点演算が発生しました。 SQL Server 2008の
An invalid floating point operation occurred.
しかし、私は(予告のみ、最後の桁がを変更)-98.508730 にパラメータ@Longitude
を変更した場合コードは正常に動作します。
コードでは、LatLngポイント付近の@MilesRadius
のプロパティがリストされています。
@Latitudeパラメータと@Longitudeパラメータは、テーブルAddressの経度と緯度フィールドと同じ型です。
ここでは何ができますか?ありがとう。あなたはそれを使用している
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
)丸め誤差のために、あなたの質問私は – Lamak
にそれを追加してください。申し訳ありませんが忘れてしまった。パラメータLatitudeとLongitudeは、Addressテーブルの緯度と経度のフィールドと同じ型です。小数点(10,6) – bobetko