免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6279 | 回复: 14
打印 上一主题 下一主题

将当前时间转换成一个字符串(6个字符),大家给点思路 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-06 10:03 |只看该作者 |倒序浏览
老板非要我这样生成一个6位的随机码,而且还要根据这个随机码能反得到时间

例如:07-08-06 12:30:55 789(毫秒) 生成****** 不能是符号,可以是数字和字母的组合

论坛徽章:
0
2 [报告]
发表于 2007-08-06 11:08 |只看该作者
问题是这个要生成的随机码和时间是一一对应关系,还是多对一的关系?

论坛徽章:
0
3 [报告]
发表于 2007-08-06 11:12 |只看该作者
07-08-06 12:30:55 到秒可以用4个字节存放。
毫秒可以用2个字节存放,对应关系,可以自己定义。

论坛徽章:
0
4 [报告]
发表于 2007-08-06 11:13 |只看该作者
把时间转换成毫秒,可以表示几千年。

一年是 1000*60*60*24*(约)366 = 31622400000毫秒
6位ASCII可以表示 256^6 = 281474976710656毫秒

281474976710656 / 31622400000 = 8901年

表示人类有记载的历史和几千年将来足够了。

以上大大的不对,后边有更新。

[ 本帖最后由 Mart1n 于 2007-8-6 16:56 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-08-06 11:48 |只看该作者
其实,他的需求就是要生成一个6位的订单号。当然是不能重复的。我说生成一个随机字符串,生成时查找是否有相同的存在。但他说不行,数据库的订单量非常惊人,说我用查询浪费时间和效率。

于是他想到了时间(精确到毫秒)是绝对不会有重复的。就让我在时间上处理成6位不重复的字符串。

论坛徽章:
0
6 [报告]
发表于 2007-08-06 12:04 |只看该作者
2^48个数应该够用了吧?6字节  当个数来处理

论坛徽章:
0
7 [报告]
发表于 2007-08-06 12:10 |只看该作者
6字节  当个数来处理

怎么做,请大哥明示

论坛徽章:
0
8 [报告]
发表于 2007-08-06 12:55 |只看该作者
楼主是要求打印出来看到的只能有6个字符吗?

论坛徽章:
0
9 [报告]
发表于 2007-08-06 13:28 |只看该作者
6位太少了吧,
一小时3600秒, 一天 86400秒, 12天就用完了.  不如用数据库生成  sequences
select to_char(sysdate, 'yyyymmddhh24miss')||(lpad(seq_xx.nextval, 6, '0')) from dual;

论坛徽章:
0
10 [报告]
发表于 2007-08-06 13:45 |只看该作者
如果只能用6个字符显示,那就不行了,36进制的zzzzzz都不能表示一年的毫秒数
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP