需要帮助解决SQL Server错误 - '将varchar转换为数据类型数字的算术溢出错误'。

时间:2016-11-21 06:39:38

标签: sql-server

我正在尝试修改最初为MySQL编写的脚本以与SQL Server 2014一起使用。虽然我理解错误背后的想法,但我不知道如何修复它。由于我看到的大多数问题都涉及到数字或来自数字,而且这两个都没有,我不知道从哪里开始。

该查询正在查看具有纬度和经度的邮政编码数据库,以确定具有特定半径的邮政编码(在这种情况下为10)。

select * 
from tbl_zipCodes AS z 
where 
    (SQRT((69.172 * (33.029167000000001 - z.latitude)) * (69.172 * (33.029167000000001 - z.latitude)) + (53.0 *(-97.068675999999996 - z.longitude)) * (53.0 *(-97.068675999999996 - z.longitude))) <= 10 )

非常感谢任何提示或帮助 - 我很乐意提供所需的任何其他信息。

以下是架构的简化版本:

id      int     NOT NULL PK
zipCode     varchar(25) Checked
latitude    varchar(500)    Checked
longitude   varchar(500)    Checked
active  bit Checked

邮政编码75028的样本数据。这是产生错误的数据,因此它应该是可重复的

76051   32.935290000000002  -97.068689000000006 1
76092   32.951594   -97.150991000000005 1
76205   33.188906000000003  -97.127021999999997 1
76210   33.145139999999998  -97.088560000000001 1
76226   33.115116   -97.162499999999994 1
76262   33.010711000000001  -97.216288000000006 1
75007   33.003920999999998  -96.895926000000003 1
75010   33.029434000000002  -96.897384000000002 1
75019   32.960099999999997  -96.982656000000006 1
75022   33.02861    -97.121368000000004 1
75056   33.072392000000001  -96.907000999999994 1
75057   33.047165999999997  -96.983309000000006 1
75063   32.919516999999999  -96.977421000000007 1
75065   33.115397999999999  -97.004728999999998 1
75067   33.01972    -96.991410000000002 1
75028   33.029167000000001  -97.068675999999996 1
75077   33.078944999999997  -97.077551999999997 1
75358   32.937800000000003  -96.790800000000004 1

再次感谢您的帮助!

0 个答案:

没有答案