首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在int数据类型值前面加上前导零?

如何在int数据类型值前面加上前导零?
EN

Stack Overflow用户
提问于 2012-05-10 11:18:54
回答 3查看 2.3K关注 0票数 1

是否可以将int值设置为从零开始?例如一个ID号,它应该是0020192,但它只将它保存为20192,我猜可以将它设置为字符串相关的类型,但如果可能的话,让它保持为Int。

00是必需的,因为前3位数字(002)表示员工工作部分,而后4位数字是员工的实际数字(0192,第192位员工)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-10 11:54:24

在你的评论中,你会这样说:

实际上,它应该是一个7位数字的id。,

。0090001,前三位将标识员工的工作站,而后四位(0014)将是他的实际员工id。

这意味着您的ID实际上根本不是数字,它们是具有特定内部结构的字符串:

  1. 七个字符。
  2. 所有字符都是数字。
  3. 前三个字符标识workstation.
  4. The,后四个字符标识员工。

这是一个恰好看起来像数字的字符串。您应该为此使用一个char(7),并添加一个检查约束来强制执行内部格式(或者尽可能多地使用它)。

我也看不到有多少机会用这些in做任何算术或其他类似数字的事情,主要是因为它们实际上不是数字。

使用char(7)的一个好处是,您的应用程序应该将is视为字符串,这样您就不必担心将0112222视为八进制数而产生混淆。

如果可能,您应该使用两个单独的字符串列:

  1. 工作站ID的char(3)
  2. 和员工ID的char(4)

如果在数据库中的其他地方有这两个对象使用数字in,那么在这里也使用两个数字,并添加外键来约束数据。

执行摘要:您的ID不是数字,所以不要试图将它们存储为数字,它们是看起来像数字的字符串,应该作为字符串存储和操作。

票数 4
EN

Stack Overflow用户

发布于 2012-05-10 11:45:06

试一下这段代码

代码语言:javascript
复制
SELECT RIGHT(CONCAT('0000000', 201920),8) AS ID_Number

http://sqlfiddle.com/#!2/7215e/1

票数 2
EN

Stack Overflow用户

发布于 2012-05-10 12:02:58

只有显示问题。

如果您在数据库中的IDNO(自动增量/整数)是201,并且您希望它显示为10个字符的长度格式,例如0000000201

应该是这样的。

代码语言:javascript
复制
select rtrim(replicate('0',abs(len(IDNO)-10)) + CAST(IDNO as varchar)) from IDMaster

只需根据您喜欢的显示长度修改10即可。例如2,所以abs(len(IDNO)-2)

干杯。

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

https://stackoverflow.com/questions/10527078

复制
相关文章

相似问题

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