Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bug Oracle 11.1 mengonversi nomor hari Julian ke DATE atau TIMESTAMP

Saat mencoba melihat apa yang seharusnya dilakukan Oracle, lihat dokumentasi , "Angka hari Julian adalah jumlah hari sejak 1 Januari 4712 SM."

Kata-kata itu memang menyiratkan bahwa 1 Julian akan menjadi satu hari sejak 1 Januari 4712 SM, dengan kata lain 2 Januari. Namun penerapan perhitungan tanggal Julian saat ini telah ada sejak lama, dengan kode yang ada tergantung pada perilakunya. . (Saya tahu kita akan kacau jika definisi Julian yang diterapkan di Oracle berubah.) Pada titik ini, paling banyak bug dokumentasi akan menjadi beberapa hari sejak 31 Desember 4713 SM.

EDIT Menemukan referensi untuk 1 Juli menjadi 1 Januari, di Panduan Programmer Antarmuka Panggilan . Bukan tempat yang pernah dilihat oleh programmer database biasa.

Berikut ini menjelaskan perbedaan tahun antara wikipedia dan Oracle:

Kasus 3 adalah berita bagi saya. Terima kasih telah mengangkatnya. Saya tidak tahu ada referensi yang mencakup perilaku itu. Terkait:

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

dan

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

Rupanya tahun 0 yang tidak ada adalah tahun kabisat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengambil Komentar dari Oracle 11g menggunakan JDBC?

  2. Kolom bukan nol terbesar

  3. Skema reverse engineer (oracle) ke ERD

  4. Pembulatan ke 2 tempat desimal dalam SQL

  5. Pilih sampel hasil acak dari hasil kueri