sql - 简单的距离查询不起作用

标签 sql sql-server-2008

按照邮政编码数据库公司的说明,我在邮政编码表中将纬度和经度定义为十进制(9, 6)。

我将纬度/经度输入到我的 C# 程序中的函数中,它为我提供边界纬度/经度,以便从数据库中获取纬度/经度列表(半径距离)

sql 代码不适用于经度。

选择顶部(10) * 来自美国的邮政编码(纬度介于 34.7600283409472 和 37.6513716590528 之间) AND(经度介于-76.383333和-76.818238之间)

但是如果我跳过经度,那么它就可以工作,或者至少返回记录,即使它们是错误的。

选择顶部(10) * 来自美国邮政编码,其中(纬度介于 34.7600283409472 和 37.6513716590528 之间)

我唯一能想到的;是因为经度为负数,所以 sql 不起作用吗?

这是 SQL SERVER 2008 R2,我还尝试了 Lat > x 和 Lat > y 等。

最佳答案

翻转你的负上限和下限:

-76.818238 **小于** -76.383333

关于sql - 简单的距离查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3943292/

相关文章:

sql - 如何获得每组的第二行

c# - 如何更新 unpivot 查询中的列我的查询附加 SQL Server?

sql - Django 自定义 SQL 返回 QuerySet,其中每个对象都有附加属性

SQL:从时间戳日期中减去 1 天

sql - 按日期条件分组

SQL Server 2008 - 如何将 GMT(UTC) 日期时间转换为本地日期时间?

sql-server - 删除 SQL 行,忽略所有外键和约束

sql-server - SQL Server 查询结果末尾有空格

sql - 使用 sql 选择的值作为另一个选择的行名

MySQL DATE_ADD() 带减法