首页 文章

Oracle中的单个月数字日期格式问题

提问于
浏览
0

当我使用'mon-d-yyyy'将日期转换为char时,我得到以下问题,因为我需要一个月的数字来表示1到9天的值 .

当我使用'mon-d-yyyy'格式时,我会在5天内输掉一个错误的日期 . 对此的任何帮助都会很棒 .

从双重中选择to_char(sysdate-22,'mon-d-yyyy'); - aug-2-2017

从双重中选择to_char(sysdate-22,'mon-dd-yyyy'); - aug-07-2017

从双重选择sysdate-22; - 07-AUG-17 11.06.43

2 回答

  • 1

    一个选项可能是拼凑您想要的日期输出:

    SELECT
        TO_CHAR(sysdate-22, 'mon-') ||
        TRIM(LEADING '0' FROM TO_CHAR(sysdate-22, 'dd-')) ||
        TO_CHAR(sysdate-22, 'yyyy')
    FROM dual;
    

    涉及 TRIM 的中间项从日期开始剥离前导零(如果存在) .

    Output:

    enter image description here

    Demo here:

    Rextester

  • 3

    在Oracle日期格式中, d 获取星期几 . 输出中的 2 表示 monday ,而不是第二个 .

    尝试使用 Fill Mode 作为Format Model Modifier

    select to_char(sysdate-22,'mon-fmdd-yyyy') from dual;
    

相关问题