0
respostas

[Sugestão] Informação equivocada, Oracle Tipo de Campos (Data), Calendário Juliano.

Boa tarde! Algumas considerações no conteúdo, com a intenção de ser uma crítica construtiva (sugestão correção). Fazendo o curso me deparei até o momento com 2 informações equivocadas. A primeira é com relação aos campos NUMBER e DECIMAL, que estão com as notações formatadas incorretamentes. E a segunda, seria a que detalho aqui, com relação ao tipo de data DATE, onde é mencionado 10 dias que o Oracle desconsidera no calendário, mas informa do dia 05/10/1582 ao dia 10/10/1582, ou seja apenas 5 dias. Está escrito dessa forma na transcrição do curso ("Quando o calendário Juliano foi implementado, foi adiantado em 10 dias da data de sua definição para poder compensar a perda que havia acontecido nos séculos anteriores."; .. "Dessa maneira, retiraram 10 dias de um determinado ano quando criaram o calendário Juliano. Essas datas ficam entre o dia 4 de outubro de 1582 e 10 de outubro de 1582." e por fim, "Logo, para o Oracle, o dia seguinte a 4 de outubro de 1582 será 10 de outubro de 1582. E este saldo é incluído em todas as funções de datas internas.") Então, entendi como um equivoco, e fui pesquisar no ChatGPT, me deparando com as seguintes informações:

("
Minha pergunta: (O Oracle considera a seguinte situação, "retiraram 10 dias de um determinado ano, quando criaram o calendário Juliano. Essas datas ficam entre o dia 4 de outubro de 1582 e 10 de outubro de 1582. Logo, para o Oracle, o dia seguinte a 4 de outubro de 1582 será 10 de outubro de 1582." Porém ai são considerados apenas 5 dias, do dia 5 ao 9 (inclusive) de outubro de 1582. Não seriam 10 dias, o que fizeram com os outros 5 dias?)
O ChatGPT disse:

Excelente pergunta! Vamos esclarecer com precisão histórica e técnica, especialmente em relação ao comportamento do Oracle e o que de fato aconteceu na reforma do calendário juliano para o gregoriano.

O que aconteceu historicamente?
A transição do calendário Juliano para o Gregoriano realmente eliminou 10 dias do calendário — mas não foi no calendário Juliano, e sim na adoção do calendário Gregoriano, que corrigia um erro de acúmulo de tempo no anterior.

Data da mudança:
Em países católicos (como a Itália e Portugal), a mudança foi feita em 1582, por ordem do Papa Gregório XIII.

A transição ocorreu assim:
Último dia válido do calendário Juliano:
4 de outubro de 1582 (quinta-feira)
Dia seguinte no novo calendário Gregoriano:
15 de outubro de 1582 (sexta-feira)

Foram removidos exatamente 10 dias do calendário:
De 5 de outubro a 14 de outubro de 1582, inclusive.

*Então: foram retirados 10 dias, e não sobraram 5.
Isso está incorreto — ou, talvez, tenha havido um mal-entendido na fonte.

Como o Oracle trata isso?
O Oracle, por padrão, implementa corretamente essa transição com base no calendário Gregoriano prolepticamente, e considera o seguinte:

SELECT TO_CHAR(TO_DATE('1582-10-04','YYYY-MM-DD') + 1, 'YYYY-MM-DD') FROM dual;
Resultado:
1582-10-15

Ou seja, o dia seguinte a 4 de outubro de 1582 é 15 de outubro de 1582, saltando 10 dias completos.
A transição foi:
4 de outubro de 1582 ➜ 15 de outubro de 1582

Portanto, os dias 5 a 14 de outubro de 1582 não existiram no calendário Gregoriano adotado pelo Oracle.
O Oracle não contabiliza esses dias, e você não consegue representá-los nem armazená-los como datas válidas.

Teste prático no Oracle:
SELECT TO_DATE('1582-10-04', 'YYYY-MM-DD') + 1 AS proximo_dia FROM dual;

Saída:
15/10/1582

Conclusão
Foram eliminados 10 dias inteiros: de 5 a 14 de outubro de 1582.
O Oracle segue essa regra corretamente.
Se você viu uma informação dizendo que foram apenas 5 dias, isso está incorreto ou mal interpretado.
Não há “5 dias sobrando” — os 10 dias realmente desapareceram do calendário.
")

Atenciosamente,
Leandro Oliveira.