我正在尝试让一个查询工作,当输入一个长和一个lat时,它会从数据库返回locId的列表。
这里是sql:
lat = "-37.8333300“:lon = "145.000000”:radius = (5 * 0.621371192) ^2
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
SELECT city FROM tbliplocationsnew WHERE POWER((69.1*([longitude]- "&lon&") * cos("&lat&"/57.3)),2) + POWER((69.1*([latitude]- "&lat&")),2) < "&radius发布于 2012-02-01 01:21:52
不确定您使用的是哪个数据库,但我认为SQL中的"^2“并不意味着像数学中的”平方“。您应该使用数学的"power“函数,就像Server中的POWER(number,2) (既然您使用VB,那么您可能使用Server ?)
发布于 2012-02-01 01:21:56
你需要有两种相同的数据类型。SQL认为"5“是一个int。因此,您应该能够欺骗它,将其作为一个浮动,而不是"5.0“。
https://stackoverflow.com/questions/9089413
复制相似问题