No Oracle Database, podemos usar o
TH
elemento de formato para adicionar o sufixo do número ordinal ao resultado de um TO_CHAR()
operação ao formatar datas. Por exemplo, em vez de gerar
10 Feb
poderíamos produzir 10th Feb
. Ou, em vez de gerar 21 century
, podemos produzir 21 century
. O mesmo se aplica aos componentes de data soletrada. Por exemplo, em vez de Twenty One
, podemos produzir Twenty First
. Exemplo
Segue um exemplo para demonstrar:
SELECT TO_CHAR(DATE '2030-12-01', 'Ddth Month')
FROM DUAL;
Resultado:
01st December
Podemos usar o
fm
modificador de formato para remover o zero à esquerda, se necessário:SELECT TO_CHAR(DATE '2030-12-01', 'fmDdth Month')
FROM DUAL;
Resultado:
1st December
Observe que a capitalização do número ordinal é determinada pelo elemento de formato relevante (neste caso, o
Dd
parte), não o TH
sufixo. Veja o que acontece quando alteramos o segundo
d
para maiúsculas:SELECT TO_CHAR(DATE '2030-12-01', 'fmDDth Month')
FROM DUAL;
Resultado:
1st December
Portanto, embora tenhamos fornecido o
th
sufixo em letras minúsculas, não afetou o resultado. A capitalização foi determinada pelo elemento de formato (não incluindo o fm
modificador de formato). Também podemos adicionar o número ordinal ao retornar outros componentes de data, como o século:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccth "Century"')
FROM DUAL;
Resultado:
21st Century
Datas soletradas
Podemos adicionar o
SP
elemento de formato para ter a parte da data soletrada:SELECT TO_CHAR(DATE '2030-12-30', 'CCTHSP "Century"')
FROM DUAL;
Resultado:
TWENTY-FIRST Century
E podemos usar letras maiúsculas conforme necessário:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccthsp "Century"')
FROM DUAL;
Resultado:
Twenty-First Century
Veja o que acontece quando omitimos o
TH
especificador de formato:SELECT TO_CHAR(DATE '2030-12-30', 'Ccsp')
FROM DUAL;
Resultado:
Twenty-One