PostgreSQL - Fungsi dan Operator Tanggal/Waktu
Halo, para pemula pemrograman! Hari ini, kita akan melangsungkan sebuah perjalanan yang menarik melalui dunia tanggal dan waktu di PostgreSQL. Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk menggイド Anda melalui konsep-konsep ini dengan kesenangan yang saya miliki selama 15 tahun terakhir di kelas. Jadi, ambil catatan virtual Anda, dan mari kita masuk ke dalamnya!
Memahami Tanggal dan Waktu di PostgreSQL
Sebelum kita mulai menjelajahi fungsi dan operator, mari kitaambil sedikit waktu untuk memahami mengapa tanggal dan waktu sangat penting dalam pemrograman. Bayangkan Anda sedang membuat mesin waktu (tidak akan enak itu?). Anda akan perlu mengetahui tepatnya kapan Anda berada dan kemana (atau kapan) Anda ingin pergi. Itu sebenarnya apa yang kita lakukan dengan basis data - kita melacak kapan hal-hal terjadi, berapa lama mereka memakan waktu, dan bahkan memprediksi acara masa depan.
Sekarang, mari kita lihat beberapa fungsi tanggal dan waktu yang paling berguna di PostgreSQL.
Fungsi AGE(timestamp, timestamp) dan AGE(timestamp)
Fungsi AGE seperti teman yang selalu ingatberapa lama sesuatu terjadi. Itu menghitung perbedaan antara dua timestamp atau antara timestamp dan tanggal saat ini.
Contoh 1: Menghitung Umur
SELECT AGE(TIMESTAMP '2023-05-15', TIMESTAMP '1990-01-01');
Ini akan mengembalikan sesuatu seperti:
33 tahun 4 bulan 14 hari
Apa yang terjadi disini? Kita meminta PostgreSQL untuk menghitung perbedaan waktu antara 1 Januari 1990 dan 15 Mei 2023. Itu seperti meminta, "Berapa umur seseorang jika mereka lahir pada 1 Januari 1990?"
Contoh 2: Menghitung Umur dari Tanggal Saat Ini
SELECT AGE(TIMESTAMP '1990-01-01');
Ini akan mengembalikan perbedaan waktu antara 1 Januari 1990 dan tanggal saat ini. Itu seperti meminta, "Berapa umur seseorang yang lahir pada 1 Januari 1990?"
Fungsi Tanggal/Waktu Saat Ini
Fungsi ini seperti jam dan kalender yang terpasang dalam basis data Anda. Mereka memberitahu Anda kapan waktu saat ini.
Contoh 3: Mendapatkan Tanggal dan Waktu Saat Ini
SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;
Ini akan mengembalikan tanggal hari ini, waktu saat ini, dan keduanya gabungan. Itu seperti meminta basis data Anda, "Hari ini adalah hari apa, pukul berapa sekarang, dan apa momen tepat sekarang ini?"
Fungsi DATE_PART dan DATE_TRUNC
DATE_PART seperti mesin waktu yang dapat memperbesar bagian tertentu dari tanggal atau waktu. DATE_TRUNC, dari sisi lain, seperti pengatur waktu yang menyederhanakan - itu membulatkan ke bawah ke unit waktu tertentu.
Contoh 4: Mengambil Bagian dari Tanggal
SELECT DATE_PART('year', TIMESTAMP '2023-05-15 10:30:00');
SELECT DATE_PART('hour', TIMESTAMP '2023-05-15 10:30:00');
Query pertama akan mengembalikan 2023, dan yang kedua akan mengembalikan 10. Itu seperti meminta, "Dari tahun mana timestamp ini?" dan "Jam berapa di hari ini timestamp ini?"
Contoh 5: Memotong Timestamp
SELECT DATE_TRUNC('hour', TIMESTAMP '2023-05-15 10:30:00');
Ini akan mengembalikan '2023-05-15 10:00:00'. Itu seperti mengatakan, "Berikan saya timestamp ini, tapi setel menit dan detik ke nol."
Fungsi EXTRACT
EXTRACT mirip dengan DATE_PART, tetapi dengan sintaksis yang sedikit berbeda. Itu cara lain untuk mengambil bagian tertentu dari tanggal atau waktu.
Contoh 6: Mengambil dari Timestamp
SELECT EXTRACT(YEAR FROM TIMESTAMP '2023-05-15 10:30:00');
SELECT EXTRACT(HOUR FROM TIMESTAMP '2023-05-15 10:30:00');
Query ini akan mengembalikan 2023 dan 10, masing-masing, sama seperti contoh DATE_PART kita.
Fungsi ISFINITE
Fungsi ini seperti pemeriksaan kenyataan basis data Anda. Mereka memberitahu Anda jika tanggal, timestamp, atau interval adalah nilai nyata, terbatas, atau salah satu nilai tak terbatas khusus.
Contoh 7: Memeriksa Finiteness
SELECT ISFINITE(DATE '2023-05-15');
SELECT ISFINITE(TIMESTAMP 'infinity');
Query pertama akan mengembalikan true, sedangkan yang kedua akan mengembalikan false. Itu seperti meminta, "Apakah 15 Mei 2023 adalah tanggal nyata?" (ya) dan "Apakah 'infinity' adalah timestamp nyata?" (tidak).
Fungsi JUSTIFY
Fungsi ini seperti pengatur waktu basis data Anda. Mereka mengambil interval yang mungkin memiliki nilai yang aneh dan mengatur mereka ke representasi yang lebih standar.
Contoh 8: Mengatur Interval
SELECT JUSTIFY_DAYS(INTERVAL '30 days');
SELECT JUSTIFY_HOURS(INTERVAL '36 hours');
SELECT JUSTIFY_INTERVAL(INTERVAL '1 month 36 hours');
Ini mungkin mengembalikan:
1 bulan
1 hari 12 jam
1 bulan 1 hari 12 jam
Itu seperti mengatakan, "Ambil periode waktu ini dan ekspresikan mereka dalam cara yang lebih standar."
Ringkasan Fungsi
Berikut adalah tabel praktis yang menggabungkan semua fungsi yang kita diskusikan:
Fungsi | Deskripsi |
---|---|
AGE() | Menghitung perbedaan antara timestamps |
CURRENT_DATE | Mengembalikan tanggal saat ini |
CURRENT_TIME | Mengembalikan waktu saat ini |
CURRENT_TIMESTAMP | Mengembalikan tanggal dan waktu saat ini |
DATE_PART() | Mengambil bagian tertentu dari tanggal/waktu |
DATE_TRUNC() | Memotong timestamp ke presisi tertentu |
EXTRACT() | Mengambil bidang tertentu dari tanggal/waktu |
ISFINITE() | Memeriksa jika tanggal/waktu/interval adalah terbatas |
JUSTIFY_DAYS() | Mengatur hari dalam interval |
JUSTIFY_HOURS() | Mengatur jam dalam interval |
JUSTIFY_INTERVAL() | Mengatur seluruh interval |
Dan begitu juga, teman-teman! Kita telah bepergian melalui waktu (fungsi) bersama, mengambil bit-bit tanggal, memeriksa kenyataan tak terbatas, dan bahkan mengatur interval. Ingat, bekerja dengan tanggal dan waktu dalam basis data sangat penting untuk banyak aplikasi, dari melacak aktivitas pengguna hingga menjadwal acara.
Sekarang, sebagai Anda terus melanjutkan perjalanan pemrograman Anda, Anda akan menemukan bahwa fungsi-fungsi ini sangat berguna. Mereka seperti pisau Swiss Army dalam kotak peralatan basis data Anda untuk manipulasi waktu. Tetap latih, terus jelajah, dan sebelum Anda mengetahui, Anda akan menjadi seorang penguasa waktu di dunia basis data!
Credits: Image by storyset