2017-10-12 34 views
0

我确实遇到过这些转换中的一些问题,所以我很抱歉,过去我曾经提过类似的问题,但是我不知道如何实现这个目标。SQL CONVERT STRING

那么的50.00值正在被导出到以下格式 -

000000000000050000 

的25.99的数值看起来像

000000000000025990 

这是一个18字符的字段,其中任何前导字符用零填充。

我所试图做的是将其转换成一个19字符的字符串 - 还与领先的零 - 但50或25.99值略有不同 -

000000000000050000成为0000000000000005000

000000000000025990变得0000000000000002599

任何帮助将不胜感激。

+0

搜索T-SQL'SUBSTRING'函数 – saidfagan

+0

如何完成18个字符的转换? – gbn

+0

下面给出的答案完美地将字符串转换为你想要的。请记住将包含新数字的字段更改为nvarchar(19) ALTER TABLE tablename ALTER COLUMN somecolumn nvarchar(19) – russ

回答

1

你似乎想:​​

select '00' + left(str, 17) 

这是一个很奇怪的格式。也许你应该考虑使用numeric/decimal,它可以准确地表示数字。

0

大量假设进入这个答案,但...

SELECT '00'+LEFT(OriginalField, 17) 

这将截断原来的18字符和简单地把两个零的在前面。

如果您需要可能收集第17个字符,解决方案并非如此简单。