使用sql自动生成yyyyMMdd001格式的流水号

解题思路:先判断数据表中是否有当日数据,如果有就在当日最大数据之上加一,如果没有则创建当日第一条数据比如20191221001

<select id="generationBta" resultType="java.lang.String">
        SELECT case
              WHEN SUBSTR(max(bta),1,8) = DATE_FORMAT(SYSDATE(),'%Y%m%d') then  CONCAT(DATE_FORMAT(SYSDATE(),'%Y%m%d'),LPAD(SUBSTR(max(bta),9,4) + 1,4,0))
              WHEN count(*) = 0 then CONCAT(DATE_FORMAT(SYSDATE(),'%Y%m%d'),'0001')
              END
        FROM
              etrip_voucher
        where bta like CONCAT(DATE_FORMAT(SYSDATE(),'%Y%m%d'),'%')
    </select>

版权声明:本文为CSDN博主「GreatestAsset」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28336067/article/details/72189804