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

Cara mendapatkan hari atau jam kerja di antara dua tanggal

Anda tidak bisa. Ini sesederhana itu. Hari libur nasional bervariasi di seluruh dunia, bervariasi dari tahun ke tahun dan hari libur tambahan dapat ditambahkan atau dihilangkan kapan saja. Selain itu, beberapa yurisdiksi memberlakukan hari libur nasional yang jatuh pada akhir pekan dan menetapkannya pada minggu berikutnya; yang lain tidak.

Anda harus membuat tabel kalender dan menandai hari libur nasional/akhir pekan, dll.

Misalnya

create table calender
  ( day date
  , weekend varchar2(1)
  , holiday varchar2(1)
    );

Kemudian masukkan beberapa data ke dalamnya...

 insert into calender (day, weekend)
 select trunc(sysdate + level)
      , case when to_date(sysdate + level,'fmDAY') in ('SATURDAY','SUNDAY') 
                  then 'Y' else 'N' end
   from dual
connect by level <= 365

Terakhir, perbarui secara manual apa yang Anda anggap sebagai hari libur nasional di sana.

Anda kemudian dapat memilih hari kerja, tergantung pada bagaimana Anda mengisinya dengan sesuatu seperti ini:

select count(*)
  from calender
 where day between :startdate and :enddate
   and weekend = 'N'
   and holiday = 'N'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabel audit Pemicu Oracle Dasar

  2. Bagaimana Cara Menonaktifkan Pemicu di Oracle SQL Developer?

  3. Cara mendapatkan usia dalam tahun, bulan, dan hari menggunakan Oracle

  4. Oracle mendapatkan kunci asing

  5. Cara Memesan berdasarkan Nama Bulan di PostgreSQL atau Oracle