使用我正在构建的商店定位器来解决此问题。 Radians函数在执行SELECT RADIANS(47)时返回零(0),但在执行SELECT RADIANS(47.0)时返回0.83 ....
结束的结果是使sql语句计算的距离为零(0)。我正在运行以下系统:
这是我使用radians函数的SQL语句。
SELECT TOP 15 i.* FROM (
SELECT [id],[storeName],[storeNumber],[latitude],[longitude],
ROUND((3959*acos(cos(radians([latitude])) * cos(radians( 47 ))
* cos(radians( -122.915 ) - radians([longitude])) + sin(radians([latitude]))
* sin(radians( 47 )))) , 2) AS distance
FROM [Public].[dbo].[stores] WHERE [latitude] <> 0 AND [longitude] <> 0
) i WHERE distance < '50' ORDER BY i.distance
答案 0 :(得分:3)
它按设计工作。 根据文档,此函数返回与参数相同的类型。 与简单的运算符相同: 选择5 / 2,5.0 / 2 - 返回2和2.5