玖叶教程网

前端编程开发入门

MySQL编写函数生成一个指定范围的随机月份

需求

已知季度,实现给定月份范围生成一个随机月份,月份保留两位数字,不足两位的数字前填充0,即月份属于已知的季度。

如:

已知第三季度,即7-9月份,返回文本07、08、09

已知第四季度,即10-12月份,返回10、11、12

函数功能

通过范围 产生随机数

-- 生成≥2且≤10的随机数
SELECT  floor( 2 +rand() * 10 - 2 + 1 );

判断随机数的位数,不足两位补0

-- 正则表达
REGEXP '^.#39;

函数编写

DROP FUNCTION IF EXISTS `随机月份`;
CREATE DEFINER = CURRENT_USER FUNCTION `随机月份`(`m` int,`n` int)
	RETURNS VARCHAR(255)
BEGIN
	DECLARE temp VARCHAR(255);
	DECLARE ret VARCHAR(255);
	SET temp = floor(`m`+ rand() * (`n` - `m`+1));
	IF temp REGEXP '^.#39; THEN
		SET temp = CONCAT('0',CAST(temp AS CHAR));
	END IF;
	RETURN temp;
END;

函数调用

SELECT 随机月份(9,10);
-- 可产生随机月份:09、10


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言