Di bawah ini adalah dua fungsi yang dapat digunakan untuk mengembalikan hari dari tanggal di Oracle Database.
EXTRACT()
Fungsi
EXTRACT(datetime)
fungsi digunakan untuk mengekstrak berbagai bagian datetime dari nilai datetime. Ini termasuk hari.
Ini contohnya:
SELECT EXTRACT(DAY FROM DATE '2037-10-25')
FROM DUAL;
Hasil:
25
Ini adalah DAY
kata kunci yang mengekstrak bagian hari dari tanggal. Kita bisa mendapatkan bagian tanggal lainnya dengan mengubahnya menjadi kata kunci yang relevan. Misalnya, YEAR
, MONTH
, HOUR
, MINUTE
, dll.
Kita juga dapat menggunakan fungsi tersebut dengan nilai datetime lainnya, seperti TIMESTAMP
, dll.
TO_CHAR(datetime)
Fungsi
Kita juga dapat menggunakan the TO_CHAR(datetime)
berfungsi sebagai metode alternatif untuk mendapatkan hari dari tanggal.
Fungsi ini menerima nilai datetime atau interval sebagai argumen pertama, dan model format sebagai argumen kedua. Fungsi kemudian mengonversi nilai menjadi tipe data VARCHAR2
dalam format yang ditentukan.
Model format menentukan format untuk mengembalikan nilai datetime/interval. Model format terdiri dari satu atau lebih elemen format. Hal ini memungkinkan kami untuk dengan hati-hati menyusun hasil untuk mencerminkan format yang kami inginkan.
Jika kita hanya ingin mengembalikan hari, kita dapat menggunakan salah satu elemen format untuk mengekstrak hari.
Hari dalam Bulan
Untuk mendapatkan hari dalam sebulan (antara 1-31), gunakan DD
elemen format:
SELECT TO_CHAR(DATE '2037-10-03', 'DD')
FROM DUAL;
Hasil:
03
Nama Lengkap Hari
Untuk mendapatkan nama hari penuh, gunakan DAY
:
SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;
Hasil:
SATURDAY
Nama Hari Singkat
Untuk mendapatkan nama hari yang disingkat, gunakan DY
:
SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;
Hasil:
SAT
Hari dalam setahun
Untuk mendapatkan hari dalam setahun (antara 1-366), gunakan DDD
elemen format:
SELECT TO_CHAR(DATE '2037-10-03', 'DDD')
FROM DUAL;
Hasil:
276
Hari dalam Seminggu
Untuk mendapatkan hari dalam seminggu (antara 1-7), gunakan D
elemen format:
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;
Hasil:
6
Elemen format ini bergantung pada wilayah NLS sesi. Nilai NLS_TERRITORY
sistem saya parameternya adalah AUSTRALIA
, dan oleh karena itu, hari Sabtu dianggap sebagai hari keenam dalam seminggu.
Inilah yang terjadi jika saya mengubah nilai NLS_TERRITORY
saya parameter ke AMERICA
dan jalankan kueri yang sama lagi:
ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;
Hasil:
7
Kali ini Sabtu dianggap sebagai hari ketujuh dalam seminggu.