首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >周边地区SQL

周边地区SQL
EN

Stack Overflow用户
提问于 2012-02-01 01:13:29
回答 2查看 654关注 0票数 0

我正在尝试让一个查询工作,当输入一个长和一个lat时,它会从数据库返回locId的列表。

这里是sql:

lat = "-37.8333300“:lon = "145.000000”:radius = (5 * 0.621371192) ^2

代码语言:javascript
复制
SELECT locId,longitude,latitude FROM tbliplocations WHERE (69.1*([longitude]- "&lon&") * cos("&lat&"/57.3))^2 + (69.1*([latitude]- "&lat&"))^2 < "&radius

,这是我收到的错误:

'^‘运算符中的数据类型float和int不兼容。

我不确定有什么办法,谁能给我指明正确的方向?

答案:

使用Server 2008 R2

代码语言:javascript
复制
SELECT city FROM tbliplocationsnew WHERE POWER((69.1*([longitude]- "&lon&") * cos("&lat&"/57.3)),2) + POWER((69.1*([latitude]- "&lat&")),2)  < "&radius
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-01 01:21:52

不确定您使用的是哪个数据库,但我认为SQL中的"^2“并不意味着像数学中的”平方“。您应该使用数学的"power“函数,就像Server中的POWER(number,2) (既然您使用VB,那么您可能使用Server ?)

票数 4
EN

Stack Overflow用户

发布于 2012-02-01 01:21:56

你需要有两种相同的数据类型。SQL认为"5“是一个int。因此,您应该能够欺骗它,将其作为一个浮动,而不是"5.0“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9089413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档