In Oracle, perché questo ritorno 1 marzo?
-
18-09-2019 - |
Domanda
In Oracle, questo ritorna 03/01/2010. Che non ha senso per me. Qualcuno sa perché?
SELECT TO_DATE( '2010' ,'yyyy' ) AS STRANGE_YEAR_RESULT
FROM DUAL
Ho provato su Oracle 10g e 11g.
Soluzione
Oracle ha bisogno di un DateTime completa nel suo campo di valore di tipo data, rendendo così prendere il primo giorno del corrente al mese, direi, dal momento che non richiesto altre informazioni rispetto all'anno. Ricordate che è sempre necessario per lanciare attraverso TO_DATE () e TO_CHAR () date in Oracle. Assumendo così, Oracle "sa" che si ottengono le informazioni richieste.
Altri suggerimenti
Non credo che ci sia alcun motivo ragionevole, è solo "ciò che fa". Ha inoltre ottenuto discusso sulla OTN forum circa un anno fa.
Non lo so, ma la mia ipotesi è che mesi sono pari a zero basano, in modo da Jan = 0, Mar = 2, ecc.
"10" potrebbe essere un problema Y2K in divenire, ma è essere interpretato nel 2010.
E se non viene dato il giorno del mese, forse è supponendo che il primo giorno del mese.
Perché provare questo? Faresti mai voglia di codice in questo modo.