web-dev-qa-db-ja.com

Oracle Date TO_CHAR( 'Month DD、YYYY')には余分なスペースが含まれています

私がする時...

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

私は次を取得します:

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

なぜ私の月と日の間には余分なスペースがあるのですか?なぜそれらを隣り合わせに配置しないのですか?

23
contactmatt

to_charで 'Month'を使用すると、9文字に右詰めされます。これを回避するには、短縮された「MON」または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 ...  
8
Ben

月と日の間に余分なスペースがあるのはなぜですか?なぜそれらを隣り合わせに配置しないのですか?

したがって、出力は調整されます。

パディングが必要ない場合は、フォーマット修飾子FMを使用します。

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

リファレンス: Format Model Modifiers

64

空白スペースを削除するには、fm要素を使用する必要があります。

SELECT TO_CHAR(sysdate, 'fmDAY DD "de" MONTH "de" YYYY') CURRENT_DATE
FROM   dual;
6
Rattlesnake

select to_char(sysdate、 'DD-fmMONTH-YYYY') "Date" from Dual;

上記のクエリ結果は次のようになります。

日付

2019年4月1日

0
Lijo Mathews

これを試して:-

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;
0
Ashish Brajesh
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
0