自动编号的思路

楼主
我是社区第60907位番薯,欢迎点我头像关注我哦~
本帖最后由 15107355 于 2015-8-24 16:41 编辑

       一直以来,想做一个复杂点的自动编号,但在论坛里面看到的方法要不是自增要不是方法比较麻烦,后来就想有没有简单的自动编码的方法既简单又不会重复,之后发现用时间做编码永远不会重复,这需要年月日时分秒,方法如下:

1.点击一个单元格,之后点击上面的F(x)公式
2.进入公式,输入:
  1. "XXXX"+year(today())+month(today())+day(today())+HOUR(now())+MINUTE(now())+SECOND(now())
复制代码


说明xxxx是字符串这样+号就起到了相连的作用,至于xxxx如何填写可以填写公司简称,也可以填写你自己喜欢的英文简称,例如:
  1. "china"+year(today())+month(today())+day(today())+HOUR(now())+MINUTE(now())+SECOND(now())
复制代码

year-年   month-月  day-日  hour-小时 minute-分钟 second-秒     年月日可以用today(因为他返回的就是年月日),时分秒要用NOW()在now里面可以取到时分秒的数值





3.假如现在是2015年8月22日9点32分15秒,那么出来的结果编码就是:china201582293215。    永远不会重复,而且使编码变得有意义!

看到海绵宝跟帖,把月份的格式固定成两位,感谢街头式灬幻想 ,代码如下:

  1. "GLGG"+year(today())+if(month(today())<10,CONCATENATE("0",month(today())),month(today()))+day(today())+HOUR(now())+MINUTE(now())+SECOND(now())
复制代码


最后感谢一下FR,只要有想象力就能用FR实现他!也希望像我这样的菜鸟的朋友在看帖的同时,也发一些自己的经验分享给大家!



分享扩散:
参与人数 +3 F豆 +301 F币 +10 理由
mown0774 + 1 太棒了,给你32个赞,么么哒
saber + 100 很给力!
传说哥 + 200 + 10

查看全部评分

沙发
发表于 2015-8-24 11:39:12
不错,我来顶一下。
板凳
发表于 2015-8-24 11:40:00
乐于探索,乐于分享,我就喜欢楼主这样的{:8_209:}
地板
发表于 2015-8-24 11:51:40
  {:8_209:}
5楼
发表于 2015-8-24 12:05:47
@传说哥 个人建议,最好固定格式化,XXXX20150101235959,可以加个IF判断;

if(month(today())<10,0+month(today()),month(today()))
6楼
发表于 2015-8-24 13:06:14
不确保不会重复,可在最后加个随机数RAND
7楼
发表于 2015-8-24 16:25:30
其实我希望实现XX+流水号就行了 或者是年+月+流水
8楼
发表于 2015-8-25 15:39:04
很棒!!!!!!!!
9楼
发表于 2015-10-13 09:19:27
不错,待会试试看
10楼
发表于 2015-10-16 20:39:24
顶一下,不错
11楼
发表于 2015-10-25 22:33:23
楼主有见的,咱来顶一下吧
12楼
发表于 2015-11-25 10:52:42
如果有多行记录同时插入呢
13楼
发表于 2015-12-17 17:02:45
楼主可以的。。。。。。
14楼
发表于 2016-1-1 11:10:26
15楼
发表于 2016-1-5 19:10:20
考虑问题要全面,时间怎么不可能重复呢?服务器的时间错了呢?同时间的并发呢?这些楼主都没考虑额
16楼
发表于 2016-1-13 11:17:57
就是,如果能再加上流水号就好了,这种没办法避开多用户同时提交的问题。。UUID又太长了。。。
17楼
发表于 2016-1-16 13:25:02
流水号也简单的,可以用sql()函数取的最大id然后加1
18楼
发表于 2016-3-22 15:26:18
這是一個不錯的方式,有機會可以拿來用用
19楼
发表于 2016-8-22 18:58:45
请问如果不要前面的字母的话怎么实现呢?比如编号只想要这样的20160822080655
20楼
发表于 2016-8-22 20:30:25
我只是路过打酱油的
21楼
发表于 2016-9-21 13:47:46
非常需要这个,谢谢LZ
22楼
发表于 2016-10-12 10:23:01
顶起来顶起来顶起来顶起来顶起来顶起来顶起来顶起来顶起来顶起来
23楼
发表于 2016-10-18 11:53:58
6666666666666666666666666
24楼
发表于 2016-10-18 15:56:00
一直在用,很方便,就是能实现顺序自增就更好了!
25楼
发表于 2017-3-21 13:22:46
明显有错的时候,当有1000个人在同一个时间点去增加数据时候,就会生成相同的  时间ID号 ,后面的 随机数也有可能产生一样的数字,所以楼主的方法是错误的,最终会导致数据覆盖,只有一条数据。。实在要生成UUID,不会出现相同的,在数据库里设置才是正解,不会重复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表