Ao usar o
TO_CHAR()
função para formatar um valor de data e hora no Oracle Database, você pode adicionar o indicador AD/BC simplesmente adicionando AD
ou BC
ao seu modelo de formato. O Oracle exibe o indicador apropriado, dependendo se o valor da data é AD ou BC.
Você pode fornecê-lo em maiúsculas ou minúsculas e com ou sem pontos (por exemplo,
AD
, A.D.
ad
, a.d
, etc). O Oracle exibirá o indicador conforme especificado. Exemplo
Segue um exemplo para demonstrar:
SELECT
TO_CHAR(date '2030-12-30', 'DD-MM-YYYY AD')
FROM DUAL;
Resultado:
30-12-2030 AD
Nesse caso, a data é AD e, portanto, o resultado tem
AD
anexado. AD vs BC
A Oracle calcula se é AD ou BC e exibe o indicador aplicável.
Aqui está o que acontece quando eu mudo a data para um valor BC:
SELECT
TO_CHAR(date '-2030-12-30', 'DD-MM-YYYY AD')
FROM DUAL;
Resultado:
30-12-2030 BC
O indicador resultante é BC, mesmo que minha string de formato seja
AD
. Maiúsculas x Minúsculas
Alterar o caso do elemento de formato altera o caso do resultado:
SELECT
TO_CHAR(date '2030-12-30', 'DD-MM-YYYY AD') AS "Uppercase",
TO_CHAR(date '2030-12-30', 'DD-MM-YYYY ad') AS "Lowercase",
TO_CHAR(date '2030-12-30', 'DD-MM-YYYY Ad') AS "Mixed"
FROM DUAL;
Resultado:
Uppercase Lowercase Mixed ________________ ________________ ________________ 30-12-2030 AD 30-12-2030 ad 30-12-2030 Ad
Pontos x Sem Pontos
Você pode incluir pontos se preferir:
SELECT
TO_CHAR(date '2030-12-30', 'DD-MM-YYYY A.D.') AS "Uppercase",
TO_CHAR(date '2030-12-30', 'DD-MM-YYYY a.d.') AS "Lowercase",
TO_CHAR(date '2030-12-30', 'DD-MM-YYYY A.d.') AS "Mixed"
FROM DUAL;
Resultado:
Uppercase Lowercase Mixed __________________ __________________ __________________ 30-12-2030 A.D. 30-12-2030 a.d. 30-12-2030 A.D.
Embora, observe que isso afetou o indicador de maiúsculas e minúsculas.
Data e hora de hoje
Aqui, passo
SYSDATE
para usar a data atual:SELECT
TO_CHAR(SYSDATE, 'DD-MM-YYYY A.D.')
FROM DUAL;
Resultado:
29-08-2021 A.D.