sql >> Database teknologi >  >> RDS >> Oracle

Oracle 11.1-fejl, der konverterer juliansk dagnummer til DATO eller TIMESTAMP

Når du prøver at se, hvad Oracle skal gøre, så kig på Oracles dokumentation , "Et juliansk dagtal er antallet af dage siden 1. januar 4712 f.Kr.."

Denne formulering antyder, at Julian 1 ville være en dag siden 1. januar 4712 f.Kr., med andre ord 2. januar. Den nuværende implementering af Julian datoberegning har imidlertid været på plads i lang tid, med eksisterende kode afhængigt af adfærden . (Jeg ved, at vi ville være forkludrede, hvis definitionen af ​​Julian implementeret i Oracle skulle ændre sig.) På dette tidspunkt ville det højst være en dokumentationsfejl at være dage siden 31. december 4713 f.Kr.

REDIGER Fandt en reference for Julian 1 er den 1. januar i Opkaldsgrænsefladeprogrammeringsvejledning . Ikke et sted, normale databaseprogrammører nogensinde ville se på.

Det følgende forklarer årsforskellen mellem wikipedia og Oracle:

Case 3 er en nyhed for mig. Tak fordi du tog det op. Jeg kender ikke nogen reference, der dækker den adfærd. Relateret:

SQL> select to_date('0001-01-01', 'YYYY-MM-DD') 
    - to_date ('-0001-12-31', 'SYYYY-MM-DD') from dual;

TO_DATE('0001-01-01','YYYY-MM-DD')-TO_DATE('-0001-12-31','SYYYY-MM-DD')
-----------------------------------------------------------------------
                                                                    367

og

SQL> select months_between(to_date('0001-01-01', 'YYYY-MM-DD')
  2      , to_date ('-0001-12-31', 'SYYYY-MM-DD')) from dual;

MONTHS_BETWEEN(TO_DATE('0001-01-01','YYYY-MM-DD'),TO_DATE('-0001-12-31','SYYYY-MM-DD'))
---------------------------------------------------------------------------------------
                                                                             12.0322581

Tilsyneladende er det ikke-eksisterende år 0 et skudår.



  1. Kan en databasetabel være uden en primær nøgle?

  2. Sammenlign resultatet af to tabelfunktioner ved at bruge en kolonne fra hver

  3. problem med at finde listen over filer i mappen

  4. Perl + POO og Mysql fejl