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

Bulan antara tidak mengembalikan nilai yang benar

Anda salah. MONTHS_BETWEEN memperlakukan rentang waktu dari date '2017-02-28' sampai date '2017-03-28' tepat satu bulan (hari yang sama dalam dua bulan yang berdekatan). Ini dapat dibaca di dokumen:https://docs .oracle.com/cd/B19306_01/server.102/b14200/functions089.htm

Satu tanggal lebih besar dari yang lain sehingga Anda mendapatkan angka positif atau negatif (yaitu bukan nol) tergantung pada mana yang pertama dan mana yang merupakan parameter kedua, dan karena hari sama, hasilnya akan menjadi bilangan bulat. Itu adalah 1 atau -1 untuk bulan yang berdekatan.

Perhitungan bulan adalah hal yang aneh, karena bulan bukanlah rentang waktu yang ditentukan. Anda tampaknya memiliki definisi tertentu dalam pikiran, yang hanya berbeda dari bagaimana MONTHS_BETWEEN mendefinisikannya. Tidak ada yang salah tentang itu. Saya setuju dengan MONTHS_BETWEEN pada kasus ini; dari 28 Februari hingga 28 Maret adalah "tepatnya" satu bulan. Jika Anda menginginkan aturan yang berbeda, maka terapkan matematika Anda sendiri :-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL/SQL:Perbedaan antara dua tanggal

  2. Bagaimana saya bisa terhubung ke server Oracle Database 11g melalui rantai terowongan ssh (terowongan ganda, server di jaringan perusahaan)?

  3. Bagaimana cara mendefinisikan fungsi pl sql dengan tipe pengembalian dinamis di Oracle?

  4. Cara memperbarui ID di tabel 2 dari tabel 1 di Oracle sql

  5. Oracle SQL Query untuk mendaftar semua Skema dalam DB