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

Jumlah hari Jumat di antara dua tanggal

Ini akan melakukannya:

select ((next_day(date2-7,'FRI')-next_day(date-1,'FRI'))/7)+1 as num_fridays
from data

Mungkin yang terbaik jika saya memecahnya. Fungsi NEXT_DAY mengembalikan hari berikutnya yang merupakan (dalam hal ini Jumat) setelah tanggalnya.

Jadi untuk mencari hari Jumat pertama setelah d1 adalah:

next_day( d1, 'FRI')

Tetapi jika d1 adalah hari Jumat yang akan kembali pada hari Jumat berikutnya, maka kami menyesuaikan:

next_day( d1-1, 'FRI')

Demikian pula untuk menemukan Jumat terakhir hingga dan termasuk d2, kami melakukan:

next_day( d1-7, 'FRI')

Pengurangan 2 menghasilkan jumlah hari:0 jika tanggalnya sama, 7 jika jaraknya seminggu dan seterusnya:

next_day( d1-7, 'FRI') - next_day( d1-1, 'FRI') 

Konversikan ke minggu:

(next_day( d1-7, 'FRI') - next_day( d1-1, 'FRI')) / 7

Akhirnya, jika tanggalnya sama kita mendapatkan 0, tapi benar-benar ada 1 Jumat, dan seterusnya jadi kita tambahkan satu:

((next_day( d1-7, 'FRI') - next_day( d1-1, 'FRI')) / 7) + 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masalah Koneksi Intermiten Oracle JDBC

  2. Natal Datang Lebih Awal (Oracle 12.2)

  3. Cara Mempercantik Hasil Kueri Berformat JSON di SQLcl (Oracle)

  4. Bagaimana Cara Menambahkan Komentar ke Tabel di Oracle SQL Developer?

  5. INITCAP() Fungsi di Oracle