🧚 Dengar! Beekeeper Studio adalah GUI database yang cepat, modern, dan open source Unduh
9 September 2024 Oleh Matthew Rathbone

Mengidentifikasi Hari Kerja dengan Fungsi TO_CHAR() Oracle

Contoh berikut menunjukkan cara menggunakan TO_CHAR() untuk mengembalikan hanya baris yang tanggalnya jatuh pada hari kerja.

SELECT order_id, order_date
FROM orders
WHERE TO_CHAR(order_date, 'DY') NOT IN ('SAT', 'SUN');

Output yang Diharapkan:

ORDER_ID | ORDER_DATE
---------|------------
1001     | 04-SEP-2023
1002     | 05-SEP-2023
1005     | 06-SEP-2023
1010     | 07-SEP-2023

Dalam query ini:

  • TO_CHAR(order_date, 'DY') mengambil singkatan nama hari dari kolom order_date.
  • Klausa NOT IN ('SAT', 'SUN') menyaring baris yang harinya Sabtu atau Minggu.

Menggunakan Nama Hari Lengkap

Jika database Anda diatur ke locale dengan singkatan nama hari yang berbeda, atau Anda lebih suka memakai nama hari lengkap, Anda dapat mengubah query seperti berikut:

SELECT employee_id, work_date
FROM employee_schedule
WHERE TO_CHAR(work_date, 'DAY') NOT IN ('SATURDAY', 'SUNDAY');

Output yang Diharapkan:

EMPLOYEE_ID | WORK_DATE
------------|-----------
200         | 01-SEP-2023
201         | 02-SEP-2023
202         | 03-SEP-2023

Memfilter Hari Kerja di Antara Dua Tanggal

Sering kali Anda ingin mengambil data di antara dua tanggal, tetapi hanya untuk hari kerja. Berikut cara memperluas logikanya untuk itu.

Contoh Query: Memilih Hari Kerja di Antara Dua Tanggal

SELECT invoice_id, invoice_date
FROM invoices
WHERE invoice_date BETWEEN TO_DATE('2023-09-01', 'YYYY-MM-DD') 
                       AND TO_DATE('2023-09-10', 'YYYY-MM-DD')
AND TO_CHAR(invoice_date, 'DY') NOT IN ('SAT', 'SUN');

Output yang Diharapkan:

INVOICE_ID | INVOICE_DATE
-----------|--------------
3001       | 01-SEP-2023
3005       | 04-SEP-2023
3007       | 05-SEP-2023
3010       | 06-SEP-2023

Menangani Bahasa dan Locale yang Berbeda

Oracle dapat menampilkan nama hari berdasarkan pengaturan NLS (National Language Support) pada sesi Anda. Misalnya, jika sesi Anda diatur ke bahasa selain Inggris, singkatan hari seperti ‘MON’, ‘TUE’ bisa berbeda. Anda dapat memeriksa pengaturan saat ini dengan menjalankan:

SELECT * FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_TERRITORY';

Jika perlu, Anda dapat menimpa pengaturan ini di tingkat sesi untuk memastikan hasil yang konsisten:

ALTER SESSION SET NLS_TERRITORY = 'AMERICA';

Ini mengatur territory ke ‘AMERICA’, sehingga nama hari seperti ‘MON’, ‘TUE’, dan seterusnya yang digunakan.

Menggunakan Fungsi NEXT_DAY()

Terkadang Anda ingin menghitung hari kerja berikutnya dari tanggal tertentu. Fungsi NEXT_DAY() Oracle membantu Anda menemukan kemunculan berikutnya dari hari tertentu dalam seminggu.

Contoh Query: Mencari Hari Kerja Berikutnya

SELECT NEXT_DAY(SYSDATE, 'MONDAY') AS next_monday
FROM dual;

Output yang Diharapkan:

NEXT_MONDAY
------------
11-SEP-2023

Dalam kasus ini, NEXT_DAY(SYSDATE, 'MONDAY') mengembalikan ‘Monday’ (Senin) berikutnya setelah tanggal saat ini.

Kesimpulan

Memfilter hari kerja di Oracle SQL adalah kebutuhan umum di banyak aplikasi. Dengan memakai fungsi TO_CHAR() untuk mengambil hari dalam seminggu dan menyaring akhir pekan, Anda dapat bekerja dengan hari kerja saja. Untuk skenario yang lebih kompleks, fungsi seperti NEXT_DAY() dan rentang tanggal dapat digabungkan untuk membuat query yang lebih canggih.

Artikel lain yang mungkin Anda sukai:

Beekeeper Studio Adalah GUI Database Gratis & Open Source

Tool query & editor SQL terbaik yang pernah saya pakai. Semua yang saya butuhkan untuk mengelola database ada di sini. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio cepat, intuitif, dan mudah digunakan. Beekeeper mendukung banyak sekali database, dan berjalan mulus di Windows, Mac, dan Linux.

Versi Linux Beekeeper punya fitur 100% lengkap, tanpa potong kompas, tanpa kompromi fitur.

Apa Kata Pengguna tentang Beekeeper Studio

★★★★★
"Beekeeper Studio benar-benar menggantikan alur kerja SQL lama saya. Cepat, intuitif, dan membuat pekerjaan database kembali menyenangkan."
— Alex K., Database Developer
★★★★★
"Saya sudah mencoba banyak GUI database, tetapi Beekeeper punya keseimbangan sempurna antara fitur dan kesederhanaan. Langsung berfungsi."
— Sarah M., Full Stack Engineer

Siap Meningkatkan Alur Kerja SQL Anda?

download Unduh Gratis