Di PostgreSQL Anda dapat menggunakan extract()
berfungsi untuk mendapatkan hari dari tanggal.
Anda juga dapat menggunakan date_part()
untuk melakukan hal yang sama.
Saat mengekstrak hari dari tanggal, Anda perlu menentukan arti kata "hari" yang Anda maksud. Misalnya, “hari dalam seminggu”, “hari dalam sebulan”, “hari dalam setahun”, dll.
Contoh 1:Hari dalam Seminggu
Berikut ini contoh penggunaan extract()
berfungsi untuk mengekstrak hari dalam seminggu dari tanggal.
Menggunakan dow
mengembalikan hari dalam seminggu sebagai Minggu (0) hingga Sabtu (6).
SELECT extract(dow from date '2020-12-27') AS "Day of week", to_char(date '2020-12-27', 'Day') AS "Day Name";
Hasil:
Day of week | Day Name -------------+----------- 0 | Sunday
Dalam contoh ini saya juga mengembalikan nama hari, sehingga tidak ada kebingungan hari apa yang sebenarnya dikembalikan.
Saya akan menggunakan tanggal yang sama untuk contoh lainnya, jadi saya tidak perlu mencetak nama hari dalam contoh tersebut.
Contoh 2:ISO Day of Week
Menggunakan isodow
mengembalikan hari dalam seminggu seperti Senin (1) hingga Minggu (7).
SELECT extract( isodow from date '2020-12-27' ) AS "ISO Day of week";
Hasil:
ISO Day of week ----------------- 7
Alasan saya menggunakan Sunday dalam contoh ini adalah karena ini menyoroti perbedaan antara isodow
dan dow
.
Contoh 3:Hari dalam Bulan
Saat menggunakan stempel waktu atau tanggal nilai, day
mengembalikan hari dalam sebulan (1 – 31).
SELECT extract( day from date '2020-12-27' ) AS "Day of month";
Hasil:
Day of month -------------- 27
Saat menggunakan interval nilai, day
hasil bidang dalam jumlah hari yang dikembalikan.
SELECT extract( day from interval '32 weeks' ) AS "Number of days";
Hasil:
Number of days ---------------- 224
Contoh 4:Hari dalam setahun
Menggunakan doy
mengembalikan hari dalam setahun (1 – 365/366).
SELECT extract( doy from date '2020-12-27' ) AS "Day of year";
Hasil:
Day of year ------------- 362
Contoh 5:Fungsi date_part()
date_part()
fungsi dapat digunakan sebagai pengganti extract()
fungsi. Ini contohnya.
SELECT date_part( 'doy', timestamp '2020-12-27' ) AS "Day of year";
Hasil:
Day of year ------------- 362