首页 > 解决方案 > 如何从 Oracle 中的日期和月份值中删除前导零?

问题描述

我想从结果中删除前导零。我在这里找到了答案How to remove leading zeros from day and month values in Oracle, when parsing to a string using a to_char function? ,但它对我不起作用。

我尝试了以下脚本:

 SELECT TO_CHAR(SYSDATE, 'dd.mm.yyyy'),
        TO_CHAR(SYSDATE - 20, 'fmdd-fmmm-yyyy')
   FROM DUAL;

我得到的结果如下:

2018 年 8 月 31 日 | 11-08-2018

然后我尝试了:

SELECT TO_CHAR(SYSDATE, 'dd.mm.yyyy'),
       TO_CHAR(SYSDATE - 20, 'fmMM')
  FROM DUAL;

似乎得到了正确的结果:

2018 年 8 月 31 日 | 8

那么如何从 Oracle 中的日期和月份值中删除前导零?我怎么了?

标签: sqloracle

解决方案


对于您的特定格式掩码dd.mm.yyyy,您可以尝试使用REGEXP_REPLACE从日和月组件中删除前导零:

SELECT
    REGEXP_REPLACE(TO_CHAR(SYSDATE, 'dd.mm.yyyy'), '0([0-9])\.', '\1.') AS date_field
FROM dual;

推荐阅读