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

Di dunia database SQL, PostgreSQL dikenal luas karena ketangguhan dan fiturnya yang kaya. Salah satu fitur tersebut adalah dukungannya yang kuat untuk tipe date dan timestamp. Dalam panduan ini, kita akan membahas cara memformat tanggal di PostgreSQL, lengkap dengan contoh kode. Tutorial ini ditujukan untuk software engineer dan siapa pun yang paham teknis dan ingin memperdalam pengetahuan PostgreSQL mereka.

Memahami Date di PostgreSQL

Sebelum membahas cara memformat tanggal, penting untuk memahami bagaimana tanggal direpresentasikan di PostgreSQL. PostgreSQL menggunakan tipe data “Date” untuk menyimpan tanggal. Berikut cara membuat tabel dengan kolom DATE.

CREATE TABLE orders (
  order_id serial PRIMARY KEY,
  order_date DATE NOT NULL
);

Sekarang, mari masukkan beberapa data ke tabel orders.

INSERT INTO orders (order_date) VALUES 
('2022-04-01'),
('2022-04-02'),
('2022-04-03');

PostgreSQL cukup pintar dan bisa mengenali tanggal dari sebuah string jika Anda memberikan tanggal dalam format ISO 6801.

Cara Memformat Tanggal di PostgreSQL: Menggunakan Fungsi TO_CHAR

Cara utama untuk memformat tanggal di PostgreSQL adalah dengan fungsi TO_CHAR. TO_CHAR memungkinkan kita memformat tipe date/time menjadi string dengan pola tertentu. Berikut cara penggunaannya:

TO_CHAR(date, format)

Daftar lengkap opsi string format tersedia di dokumentasi PostgreSQL. Berikut opsi format per Januari 2024:

Pola Deskripsi
HH jam dalam sehari (01–12)
HH12 jam dalam sehari (01–12)
HH24 jam dalam sehari (00–23)
MI menit (00–59)
SS detik (00–59)
MS milidetik (000–999)
US mikrodetik (000000–999999)
FF1 persepuluh detik (0–9)
FF2 perseratus detik (00–99)
FF3 milidetik (000–999)
FF4 persepuluh milidetik (0000–9999)
FF5 perseratus milidetik (00000–99999)
FF6 mikrodetik (000000–999999)
SSSS, SSSSS detik sejak tengah malam (0–86399)
AM, am, PM atau pm penanda meridiem (tanpa titik)
A.M., a.m., P.M. atau p.m. penanda meridiem (dengan titik)
Y,YYY tahun (4 digit atau lebih) dengan koma
YYYY tahun (4 digit atau lebih)
YYY 3 digit terakhir tahun
YY 2 digit terakhir tahun
Y digit terakhir tahun
IYYY tahun penomoran minggu ISO 8601 (4 digit atau lebih)
IYY 3 digit terakhir tahun penomoran minggu ISO 8601
IY 2 digit terakhir tahun penomoran minggu ISO 8601
I digit terakhir tahun penomoran minggu ISO 8601
BC, bc, AD atau ad penanda era (tanpa titik)
B.C., b.c., A.D. atau a.d. penanda era (dengan titik)
MONTH nama bulan lengkap huruf kapital (diisi spasi hingga 9 karakter)
Month nama bulan lengkap berhuruf awal kapital (diisi spasi hingga 9 karakter)
month nama bulan lengkap huruf kecil (diisi spasi hingga 9 karakter)
MON singkatan nama bulan huruf kapital (3 karakter dalam bahasa Inggris, panjang bervariasi sesuai lokal)
Mon singkatan nama bulan berhuruf awal kapital (3 karakter dalam bahasa Inggris, panjang bervariasi sesuai lokal)
mon singkatan nama bulan huruf kecil (3 karakter dalam bahasa Inggris, panjang bervariasi sesuai lokal)
MM nomor bulan (01–12)
DAY nama hari lengkap huruf kapital (diisi spasi hingga 9 karakter)
Day nama hari lengkap berhuruf awal kapital (diisi spasi hingga 9 karakter)
day nama hari lengkap huruf kecil (diisi spasi hingga 9 karakter)
DY singkatan nama hari huruf kapital (3 karakter dalam bahasa Inggris, panjang bervariasi sesuai lokal)
Dy singkatan nama hari berhuruf awal kapital (3 karakter dalam bahasa Inggris, panjang bervariasi sesuai lokal)
dy singkatan nama hari huruf kecil (3 karakter dalam bahasa Inggris, panjang bervariasi sesuai lokal)
DDD hari dalam setahun (001–366)
IDDD hari dalam tahun penomoran minggu ISO 8601 (001–371; hari ke-1 dalam tahun adalah Senin pada minggu ISO pertama)
DD hari dalam sebulan (01–31)
D hari dalam seminggu, Minggu (1) sampai Sabtu (7)
ID hari dalam seminggu ISO 8601, Senin (1) sampai Minggu (7)
W minggu dalam sebulan (1–5) (minggu pertama dimulai pada hari pertama bulan)
WW nomor minggu dalam setahun (1–53) (minggu pertama dimulai pada hari pertama tahun)
IW nomor minggu dalam tahun penomoran minggu ISO 8601 (01–53; Kamis pertama dalam tahun berada di minggu 1)
CC abad (2 digit) (abad ke-21 dimulai pada 2001-01-01)
J Tanggal Julian (jumlah hari bulat sejak 24 November 4714 SM pada tengah malam waktu lokal; lihat Bagian B.7)
Q kuartal
RM bulan dalam angka Romawi huruf kapital (I–XII; I=Januari)
rm bulan dalam angka Romawi huruf kecil (i–xii; i=Januari)
TZ singkatan zona waktu huruf kapital (hanya didukung di to_char)
tz singkatan zona waktu huruf kecil (hanya didukung di to_char)
TZH jam zona waktu
TZM menit zona waktu
OF selisih zona waktu dari UTC (hanya didukung di to_char)

Contoh memformat tanggal

Mari mulai dengan mengubah tanggal kita menjadi string sederhana yang mudah dibaca. Begini caranya:

SELECT order_id, TO_CHAR(order_date, 'DD Mon YYYY') as formatted_date
FROM orders;

Hasilnya akan terlihat seperti ini:

order_id | formatted_date
———+—————-
1 | 13 Jan 2024
2 | 12 Jan 2024
3 | 11 Jan 2024
4 | 10 Jan 2024
5 | 09 Jan 2024

Kita juga bisa mengambil bagian tertentu saja dari tanggal:

SELECT order_id, TO_CHAR(order_date, 'Day') as day_of_week
FROM orders;

order_id | day_of_week
———+————-
1 | Friday
2 | Thursday
3 | Wednesday
4 | Tuesday
5 | Monday

Kita bahkan bisa menggabungkan beberapa format jika mau:

SELECT order_id, TO_CHAR(order_date, 'Day, DD Mon YYYY') as detailed_date
FROM orders;

order_id | detailed_date
———+————————
1 | Friday, 13 Jan 2024
2 | Thursday, 12 Jan 2024
3 | Wednesday, 11 Jan 2024
4 | Tuesday, 10 Jan 2024
5 | Monday, 09 Jan 2024

Fungsi EXTRACT

Fungsi EXTRACT memudahkan akses ke semua bagian dari nilai date/time, seperti tahun, bulan, hari, dan lainnya.

SELECT order_id, EXTRACT(MONTH from order_date) as order_month
FROM orders;

order_id | order_month
———+————
1 | 1
2 | 1
3 | 1
4 | 1
5 | 1

Itulah dasar-dasar memformat tanggal di PostgreSQL. Tools ini seharusnya memberi Anda fondasi yang kuat untuk menangani data tanggal. Seperti semua hal dalam pemrograman, latihan adalah kuncinya: coba sendiri perintah-perintah ini dan lihat apa lagi yang bisa Anda kreasikan. Selamat ngoding!

Anda sebaiknya mencoba menjalankan query ini di Beekeeper Studio. :-)

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 bekerja dengan database jadi menyenangkan lagi."
— Alex K., Database Developer
★★★★★
"Saya sudah mencoba banyak GUI database, tapi Beekeeper punya keseimbangan sempurna antara fitur dan kesederhanaan. Langsung jalan."
— Sarah M., Full Stack Engineer

Siap Meningkatkan Alur Kerja SQL Anda?

download Unduh Gratis