欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

MySQL] 生成随机手机号码、随机时间的方法生成随机手机号码、随机时间的方法

最编程 2024-04-08 14:25:10
...

最近在进行MySQL优化的学习,过程中需要造各种不同类型的数据。目前需要使用到随机手机号以及随机时间的方法,网查查的都不算好用,现依靠网上提供的几种方案整理如下:

生成随机手机号

我国使用的手机号码为11位,其中每段编码代表含义不同:
前3位:网络识别号(运营商代码)
4到7位:归属地区代码
8到11位:用户代码

如有特必须要更改对应的head、content部分即可。

CREATE  FUNCTION `generatePhone`() RETURNS char(11) CHARSET utf8
    DETERMINISTIC
BEGIN
    DECLARE head VARCHAR(100) DEFAULT '000,156,136,176,183';
    
    DECLARE content CHAR(10) DEFAULT '0123456789';
    
    DECLARE phone CHAR(11) DEFAULT substring(head, 1+(FLOOR(1 + (RAND() * 3))*4), 3);
    
    DECLARE i int DEFAULT 1;
    
    DECLARE len int DEFAULT LENGTH(content);
    WHILE i<9 DO
        SET i=i+1;
        SET phone = CONCAT(phone, substring(content, floor(1 + RAND() * len), 1));
    END WHILE;
    
    RETURN phone;
END

测试结果
获取随机手机号

生成随机日期

下面代码是生成1990-01-01到2019-01-01之间的随机时间,如果需要请修改你要用的时间间隔即可。

SELECT
	CONCAT(
		(
			SELECT
				DATE(
					FROM_UNIXTIME(
						UNIX_TIMESTAMP('1990-01-01') + FLOOR(
							RAND() * (
								UNIX_TIMESTAMP('2019-01-01') - UNIX_TIMESTAMP('1990-01-01') + 1
							)
						)
					)
				) AS DATE
		),
		' ',
		FLOOR(8 + RAND() * 10),
		':',
		FLOOR(10 + RAND() * 49),
		':',
		FLOOR(10 + RAND() * 49)
	)
FROM
	DUAL

测试结果
生成随机时间
在这里插入图片描述