首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Server将varchar转换为int

Server将varchar转换为int
EN

Stack Overflow用户
提问于 2013-10-07 23:30:12
回答 2查看 72关注 0票数 1

我有以下情况:

代码语言:javascript
运行
复制
DECLARE @m VARCHAR(50) = '000000001'

WHILE (@m <= 10)
BEGIN
        PRINT @m
        -- Increment the iterator
        SET @m = @m  + 1
END

当我运行上面的代码时,我得到:

代码语言:javascript
运行
复制
000000001
2
3
4
5
6
7
8
9
10

问题是,我需要的结果如下:

代码语言:javascript
运行
复制
000000001
000000002
000000003
000000004
000000005
000000006
000000007
000000008
000000009
000000010

我希望当数字增加时,8 0出现在数字之前,当数字达到10时是7 0。我尝试了以下方法,但没有起作用,就像你在10之前猜到的那样。

代码语言:javascript
运行
复制
DECLARE @m VARCHAR(50) = '1'

WHILE (@m <= 10)
BEGIN
        PRINT '00000000' +@m
        -- Increment the iterator
        SET @m = @m  + 1
END

基本上,我只想保持9位数,这听起来可能很愚蠢,但我能说什么(我的老板希望如此)。

EN

Stack Overflow用户

回答已采纳

发布于 2013-10-07 23:56:03

如果你真的必须:

代码语言:javascript
运行
复制
DECLARE @i int; Set @i = 1;
WHILE @i <= 10
BEGIN
    PRINT RIGHT('00000000' + cast(@m as char(9)), 9);
    SET @i = @i + 1;
END 

但是请不要。数据应该存储原始,并且只在显示时格式化,最好是由客户端应用程序格式化。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19236543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档