将此varchar转换为具有适当小数点的小数?

lar*_*ryq 1 varchar casting sql-server-2005 decimal

我一直在玩cast()等等,但似乎无法让事情发挥作用.我有一个长度为18个字符的varchar字符串,我想将其转换或转换为十进制,并带有五个小数位.例如,这个字符串:

00000001987600130

将成为19876.00130

在这种情况下,我总是有一个17个字符的字符串,最后五个字符保留为小数位.

我一直在和演员和皈依者一起玩,但我不在那里.例如,这些陈述让我(有点)接近但不完全正确.

select CAST('00000001987600130' as bigint)/100000.0

select (convert(decimal(17,5),left('00000001987600130',12),0))
Run Code Online (Sandbox Code Playgroud)

如果您有任何建议,我很乐意尝试.谢谢!

Jus*_*tin 5

这对我来说很好:

SELECT CONVERT (decimal, '00000001987600130') / 100000
Run Code Online (Sandbox Code Playgroud)

第一个不起作用的原因是因为CAST的结果是一个整数,并且将一个整数除以100000个/截断它(不确定是哪个),因此它仍然是一个整数.