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