之前一直搞oracle,来到新公司后接触mysql虽然感觉差不多,但是mysql的还是很不方便,比如以下函数都不支持turnc这样的简单函数。
打算写一个订单号的存储过程,类似 字母+年月日编号
BEGIN
DECLARE currentDate varCHAR (15) ;-- 当前日期,有可能包含时分秒
DECLARE maxNo INT DEFAULT 0 ; -- 离现在最近的满足条件的订单编号的流水号最后5位,如:SH2013011000002的maxNo=2
SELECT DATE_FORMAT(NOW(), ‘%Y%m%d‘) INTO currentDate ;
select max(substring(t.order_no,12,4)) into maxNo from mmd_po_order t where substring(t.order_no,4,8)=DATE_FORMAT(now(),‘%Y%m%d‘);
if maxNo!=‘‘ THEN
SELECT CONCAT(‘MMD‘, currentDate, LPAD((maxNo + 1), 4, ‘0‘)) INTO orderNo ; -- LPAD((maxNo + 1), 5, ‘0‘):如果不足5位,将用0填充左边
ELSE
SELECT CONCAT(‘MMD‘, currentDate, ‘0001‘) INTO orderNo ;
END IF;
select orderNo;
COMMIT;
END
时间: 2024-10-21 00:13:18