我解析了一个字符串,我使用子字符串来获取最后11个我认为的字符数。我完成了那个,但是当我使用cast和round时,它给出了与我手动计算不同的结果。
这是我的查询
SELECT round(cast(SUBSTRING('351856040520298,241111;1R,141117003059,A,1420.4629N,12058.7028E,0.0,77,0.9,20000006;2R,141117003059,11,98.3,12.58,04.10,282098820.9', 123,11)as float)/3600, 0, 1)
这给了我583的结果。但是当我尝试使用下面的计算手动计算时
282098820.9 / 3600
结果是
78360.7835
我的查询有问题吗?
感谢您的帮助。
答案 0 :(得分:2)
问题在于您的SUBSTRING
。它只返回2098820.9
而不是282098820.9
。尝试使用RIGHT
提取最后11个字符。
SELECT round(cast(right('351856040520298,241111;1R,141117003059,A,1420.4629N,12058.7028E,0.0,77,0.9,20000006;2R,141117003059,11,98.3,12.58,04.10,282098820.9', 11)as float)/3600, 0, 1)