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

Hari kerja berikutnya (Senin - Jumat) di Oracle?

Hal-hal ini biasanya dilakukan dengan tabel yang mencantumkan semua hari kerja dalam setahun daripada rumus naif seperti:

CASE WHEN (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) < 5 
  THEN 1 + (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) 
  ELSE 1 
END --(on monday to thursday this returns 2 to 5, on fri/sat/sun this returns 1)

CASE WHEN (1 + TRUNC (SYSDATE) - TRUNC (SYSDATE, 'IW')) < 5 
  THEN TRUNC (SYSDATE) + 1 
  ELSE TRUNC (SYSDATE + 4), 'IW')  
END --(on monday to thursday this returns tomorrow's date, on fri/sat/sun it returns next monday's date)

Menggunakan meja memungkinkan Anda untuk memperhitungkan hal-hal seperti hari libur bank, hari libur nasional, festival keagamaan, hari pemungutan suara, hari berkabung, hari libur ad hoc yang mungkin terjadi untuk perusahaan, atau alasan politik, dll. Memelihara meja kemudian menjadi tugas penting. Mengambil hari kerja berikutnya pada dasarnya adalah kasus kueri tabel untuk MIN(date) WHERE date > current_date



  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 daftar dipisahkan koma; hapus dups dan masukkan ke dalam array

  2. SQLT di 12c Tidak Dapat Mengumpulkan Statistik

  3. Bagaimana cara memasukkan set hasil yang dikembalikan oleh prosedur tersimpan Oracle ke tabel lain menggunakan prosedur tersimpan kedua?

  4. Permgen Memory Leak dengan hot redeploy dan database Oracle

  5. Prosedur dan Kursor Tersimpan Oracle