Pergunta

No Oracle, este retorna 03/01/2010. Isso não faz sentido para mim. Alguém sabe por quê?

SELECT TO_DATE( '2010' ,'yyyy' ) AS STRANGE_YEAR_RESULT
FROM DUAL

Eu tentei no Oracle 10g e 11g.

Foi útil?

Solução

A Oracle precisa de um DateTime completa em seu campo de valor tipo Data, tornando-se assim dar o primeiro dia do atual mês, eu acho, desde que você exigiu nenhuma outra informação do que do ano. Lembre-se que você sempre precisa elenco através TO_DATE () e TO_CHAR () datas em Oracle. Assumindo assim, Oracle "sabe" que você vai obter as informações necessárias.

Outras dicas

Eu não acho que haja qualquer razão sensível, é apenas "o que faz". Também foi discutido na OTN fóruns cerca de um ano atrás.

Não sei, mas meu palpite é que meses são iguais a zero com base, por isso Jan = 0, Mar = 2, etc.

"10" pode ser um problema Y2K na tomada, mas ele está sendo interpretado em 2010.

E se nenhum dia do mês é dado, talvez ele está assumindo o primeiro dia do mês.

Por que testar isso? Você nunca iria querer código desta forma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top