Quand je fais...
Select TO_CHAR (date_field, 'Month DD, YYYY')
from...
Je reçois ce qui suit:
July 01, 2011
April 01, 2011
January 01, 2011
Pourquoi y a-t-il des espaces supplémentaires entre mon mois et mon jour? Pourquoi ne les met-il pas simplement l'un à côté de l'autre?
si vous utilisez 'Month' dans to_char, il remplit à 9 caractères; vous devez utiliser l'abréviation 'MON', ou to_char puis ajustez-le et concaténez-le pour éviter cela. Voir, http://www.techonthenet.com/Oracle/functions/to_char.php
select trim(to_char(date_field, 'month')) || ' ' || to_char(date_field,'dd, yyyy')
from ...
ou
select to_char(date_field,'mon dd, yyyy')
from ...
Pourquoi y a-t-il des espaces supplémentaires entre mon mois et mon jour? Pourquoi est-ce que ça ne les met pas juste l'un à côté de l'autre?
Donc, votre sortie sera alignée.
Si vous ne voulez pas utiliser le padding, utilisez le modificateur de format FM
:
SELECT TO_CHAR (date_field, 'fmMonth DD, YYYY')
FROM ...;
Référence: Modificateurs de modèle de format
Vous devez utiliser l'élément fm pour supprimer les espaces vides.
SELECT TO_CHAR(sysdate, 'fmDAY DD "de" MONTH "de" YYYY') CURRENT_DATE
FROM dual;
essaye ça:-
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