【MySQL】生成隨機手機號、隨機時間方法

最近在進行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

測試結果
生成隨機時間
網絡乞討

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章