CASE 
WHEN ((a.md_start >= '0000') AND (a.md_start <= '0359')) THEN
    TO_CHAR(TO_NUMBER(TO_CHAR(TO_DATE(a.ymd_udt) + 1, 'MM'))) || '月' ||
    TO_CHAR(TO_NUMBER(TO_CHAR(TO_DATE(a.ymd_udt) + 1, 'DD'))) || '日'
ELSE TO_CHAR(TO_NUMBER(SUBSTR(a.ymd_udt, 5, 2))) || '月' ||
     TO_CHAR(TO_NUMBER(SUBSTR(a.ymd_udt, 7, 2))) || '日'
END
我用的是8.1.7主要是实现上面的结果ymd_udt和 md_startvarchar2是类型
就是想根据md_start列 在0000-0359间就+1在变换a.ymd_udt否则直接变换