dandingrensheng1 2021-07-08 00:35 采纳率: 0%
浏览 377

DB2数据库中rand()和hex()函数的运行原理

今天在db2数据库中新增数据,想要生成UUID作为这条数据的主键,网上搜了一下给出的方法是lower(hex(rand())||hex(rand())),生成32位的UUID。新增完数据后,忍不住深究了一下,rand()是生成0到1中的随机数,小数位数不固定;hex()是将字符串的值用16进制表示(不太明白这个函数,字符串的值是指什么?)。我先是在db2数据库中运行了一下hex(rand()),发现它生成的都是16位的16进制数;之后我又用rand()随机生成了一些数,得到的数中有十八位的小数有十九位的小数,我再把得到的这些数分别放进hex()函数中,发现生成的16进制数有十六位的有十八位的还有二十位的。这我就不明白了,上面两种方式不应该是等价的吗?为什么结果却不一样?hex()函数的运行机制到底是怎么样的?还有hex()是将字符串的值转换成16进制,而rand()生成的却是浮点数,运行时是现将浮点数转换成字符串再进行处理吗?还有字符串的值是什么,是各个字符对应的编码拼在一起?求大神解答小白的问题,多谢了!

  • 写回答

1条回答 默认 最新

  • 关注

    应该是字符的值,比如A 字母,ASCII值是65,16进制就是0x41

    评论

报告相同问题?

悬赏问题

  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件