SQL Query奇怪的错误

时间:2011-10-31 12:39:22

标签: sql sql-server-2005

执行此查询时,会显示以下错误。

  

[Msg 8114,Level 16,State 5,Line 1
  将数据类型varchar转换为float时出错。]

我想知道当单个quot中的长字符串被1或0替换时,错误在比较部分fb_userevents.userid = '100002917025417'中。而不是引用(')围绕它为什么它试图转换为浮动?

我正在使用SQL Server 2005

select
    fb_event.eventname
from
    fb_event
inner join
    fb_userevents on fb_userevents.eventid = fb_event.eventid  
where 
    fb_userevents.userid = '100002917025417' 
    and DATEDIFF(hh,fb_event.startdate,getdate()) < 0 
    and  acos(sin(0) * sin(convert(float,altitude)) + 
         cos(0) * cos(convert(float,altitude)) *
         cos(convert(float,longitude) - 101)) * 6371 <= 1000

该用户的替补和长官: enter image description here

2 个答案:

答案 0 :(得分:4)

你确定问题不在这条线上吗?

cos(convert(float,altitude))

什么数据类型是海拔高度?并且该列中的每个值都只包含数字字符吗?

答案 1 :(得分:0)

您可能需要在该字段上进行显式转换或转换。