복붙노트

[SQL] 오라클 날짜 TO_CHAR ( '월 DD, YYYY')는 거기에 여분의 공백이

SQL

오라클 날짜 TO_CHAR ( '월 DD, YYYY')는 거기에 여분의 공백이

나는 할 때 ...

Select TO_CHAR (date_field, 'Month DD, YYYY')
from...

나는 다음을 얻을 :

July      01, 2011
April     01, 2011
January   01, 2011

왜 내 월과 일 사이가 여분의 공백은? 왜 그냥 서로 옆에 넣어하지 않는 이유는 무엇입니까?

해결법

  1. ==============================

    1.당신은 9 개 문자 바로 그것을 패드 TO_CHAR에서 '월'을 사용하는 경우; 당신은 단축 '월'을 사용하거나 TO_CHAR 후 트림 및이를 방지 할을 연결해야합니다. 참조, http://www.techonthenet.com/oracle/functions/to_char.php

    당신은 9 개 문자 바로 그것을 패드 TO_CHAR에서 '월'을 사용하는 경우; 당신은 단축 '월'을 사용하거나 TO_CHAR 후 트림 및이를 방지 할을 연결해야합니다. 참조, http://www.techonthenet.com/oracle/functions/to_char.php

    select trim(to_char(date_field, 'month')) || ' ' || to_char(date_field,'dd, yyyy')
      from ...
    

    또는

    select to_char(date_field,'mon dd, yyyy')
      from ...  
    
  2. ==============================

    2.그래서 출력이 정렬됩니다.

    그래서 출력이 정렬됩니다.

    당신이 사용을 형식 수정 FM 패딩하지 않으려는 경우 :

    SELECT TO_CHAR (date_field, 'fmMonth DD, YYYY') 
      FROM ...;
    

    참고 : 형식 모델 수정

  3. ==============================

    3.당신은 공백을 삭제 FM 요소를 사용합니다.

    당신은 공백을 삭제 FM 요소를 사용합니다.

    SELECT TO_CHAR(sysdate, 'fmDAY DD "de" MONTH "de" YYYY') CURRENT_DATE
    FROM   dual;
    
  4. ==============================

    4.

    SQL> -- original . . .
    SQL> select
      2  to_char( sysdate, 'Day "the" Ddth "of" Month, yyyy' ) dt
      3  from dual;
    
    DT
    ----------------------------------------
    Friday    the 13th of May      , 2016
    
    SQL>
    SQL> -- collapse repeated spaces . . .
    SQL> select
      2  regexp_replace(
      3      to_char( sysdate, 'Day "the" Ddth "of" Month, yyyy' ),
      4      '  * *', ' ') datesp
      5  from dual;
    
    DATESP
    ----------------------------------------
    Friday the 13th of May , 2016
    
    SQL>
    SQL> -- and space before commma . . .
    SQL> select
      2  regexp_replace(
      3      to_char( sysdate, 'Day "the" Ddth "of" Month, yyyy' ),
      4      '  *(,*) *', '\1 ') datesp
      5  from dual;
    
    DATESP
    ----------------------------------------
    Friday the 13th of May, 2016
    
    SQL>
    SQL> -- space before punctuation . . .
    SQL> select
      2  regexp_replace(
      3      to_char( sysdate, 'Day "the" Ddth "of" Month, yyyy' ),
      4      '  *([.,/:;]*) *', '\1 ') datesp
      5  from dual;
    
    DATESP
    ----------------------------------------
    Friday the 13th of May, 2016
    
  5. ==============================

    5.이 시도:-

    이 시도:-

    select to_char(to_date('01/10/2017','dd/mm/yyyy'),'fmMonth fmDD,YYYY') from dual;
    
    select to_char(sysdate,'fmMonth fmDD,YYYY') from dual;
    
  6. ==============================

    6.(SYSDATE를, 'DD-fmMONTH-YYYY') TO_CHAR 선택 이중에서 "날짜";

    (SYSDATE를, 'DD-fmMONTH-YYYY') TO_CHAR 선택 이중에서 "날짜";

    아래에 주어진 위의 쿼리 결과가 될 것입니다.

    01 4 월 2019

  7. from https://stackoverflow.com/questions/7166446/oracle-date-to-charmonth-dd-yyyy-has-extra-spaces-in-it by cc-by-sa and MIT license