mysql编写函数生产指定范围随机月份

一、需求

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

如:

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

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

二、函数功能

通过范围 产生随机数

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

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

-- 正则表达
REGEXP '^.$'

三、函数编写

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 '^.$' THEN
		SET temp = CONCAT('0',CAST(temp AS CHAR));
	END IF;
	RETURN temp;
END;

四、函数调用

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

 

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值