私がする時...
Select TO_CHAR (date_field, 'Month DD, YYYY')
from...
私は次を取得します:
July 01, 2011
April 01, 2011
January 01, 2011
なぜ私の月と日の間には余分なスペースがあるのですか?なぜそれらを隣り合わせに配置しないのですか?
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 ...
月と日の間に余分なスペースがあるのはなぜですか?なぜそれらを隣り合わせに配置しないのですか?
したがって、出力は調整されます。
パディングが必要ない場合は、フォーマット修飾子FM
を使用します。
SELECT TO_CHAR (date_field, 'fmMonth DD, YYYY')
FROM ...;
リファレンス: Format Model Modifiers
空白スペースを削除するには、fm要素を使用する必要があります。
SELECT TO_CHAR(sysdate, 'fmDAY DD "de" MONTH "de" YYYY') CURRENT_DATE
FROM dual;
select to_char(sysdate、 'DD-fmMONTH-YYYY') "Date" from Dual;
上記のクエリ結果は次のようになります。
2019年4月1日
これを試して:-
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;
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