Aritmetika Tanggal dan INTERVAL
Tambah dan kurangi tanggal dengan INTERVAL, hitung durasi, dan buat penyaring tanggal relatif seperti “7 hari terakhir”.
Aritmetika Tanggal dan INTERVAL adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
Ringkasan Tipe Tanggal dan Waktu
Empat tipe temporal inti dalam PostgreSQL:
DATE— hari kalender, tanpa waktuTIME— waktu dalam sehariTIMESTAMP— tanggal + waktu, tanpa zonaTIMESTAMPTZ— tanggal + waktu + zona (direkomendasikan untuk peristiwa)
INTERVAL: Rentang Waktu
INTERVAL adalah durasi. Anda dapat menambahkannya ke atau mengurangkannya dari tanggal/timestamp:
SELECT NOW() + INTERVAL '1 day';
SELECT NOW() - INTERVAL '30 days';
SELECT NOW() + INTERVAL '3 months 2 weeks';
SELECT INTERVAL '1 hour' + INTERVAL '15 minutes';Satuan INTERVAL
Anda dapat menggunakan year, month, week, day, hour, minute, second (bentuk tunggal atau jamak):
SELECT INTERVAL '2 years 6 months';
SELECT INTERVAL '1 week';
SELECT INTERVAL '90 seconds';Filter Tanggal Relatif Umum
Kueri "N hari terakhir" yang paling umum:
SELECT * FROM orders
WHERE created_at >= NOW() - INTERVAL '7 days';
SELECT * FROM events
WHERE created_at >= CURRENT_DATE - INTERVAL '1 month';Menambahkan Hari ke DATE
PostgreSQL juga mengizinkan date + integer sebagai "menambahkan N hari":
SELECT DATE '2024-01-01' + 30; -- 2024-01-31
SELECT DATE '2024-01-01' - 1; -- 2023-12-31Mengurangi Dua Timestamp
Selisih antara dua timestamp adalah INTERVAL:
SELECT NOW() - '2024-01-01'::TIMESTAMP;
-- → '125 days 14:30:00'
SELECT EXTRACT(EPOCH FROM (NOW() - created_at))/3600 AS hours_ago
FROM events;AGE: Selisih yang Mudah Dipahami
AGE(end, start) mengembalikan INTERVAL dalam tahun-bulan-hari:
SELECT AGE(NOW(), birth_date) AS age_interval
FROM users WHERE id = 1;
SELECT EXTRACT(YEAR FROM AGE(birth_date)) AS age_in_years
FROM users;Menambahkan Bulan — Berhati-hatilah
Menambahkan satu bulan menggunakan aritmetika kalender. 2024-01-31 + 1 month = 2024-02-29 (dipangkas):
SELECT DATE '2024-01-31' + INTERVAL '1 month'; -- 2024-02-29
SELECT DATE '2024-03-31' + INTERVAL '1 month'; -- 2024-04-30CURRENT_DATE vs NOW()
Tipe hasilnya berbeda — pilih yang paling sesuai:
SELECT CURRENT_DATE; -- 2024-03-15 (DATE)
SELECT CURRENT_TIME; -- 14:30:00+02 (TIMETZ)
SELECT CURRENT_TIMESTAMP; -- 2024-03-15 14:30:00+02 (TIMESTAMPTZ)
SELECT NOW(); -- alias for CURRENT_TIMESTAMPMenyusun Tanggal dari Komponennya
Buat tanggal dari kolom bilangan bulat:
SELECT MAKE_DATE(year, month, day) FROM birthdays;
SELECT MAKE_TIMESTAMP(2024, 3, 15, 14, 30, 0.0);Indeks pada Ekspresi Tanggal
Indeks pada created_at menangani kueri rentang dengan baik. Untuk "peristiwa pada bulan Maret", filter rentang lebih cepat daripada pemotongan bulan:
-- Index-friendly:
WHERE created_at >= '2024-03-01' AND created_at < '2024-04-01';
-- Less friendly (works only with expression index):
WHERE date_trunc('month', created_at) = '2024-03-01';Ringkasan
Aritmetika tanggal dalam SQL kaya fitur dan andal.
- INTERVAL untuk durasi
- Menambah/mengurangi secara langsung
- AGE untuk rentang yang mudah dipahami manusia
- Rentang setengah terbuka paling ramah terhadap indeks
Pemeriksaan Singkat
Ekspresi mana yang mengembalikan peristiwa dari 7 hari terakhir?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Aritmetika Tanggal dan INTERVAL” gratis?
Ya — teks lengkap “Aritmetika Tanggal dan INTERVAL” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Aritmetika Tanggal dan INTERVAL”?
Tambah dan kurangi tanggal dengan INTERVAL, hitung durasi, dan buat penyaring tanggal relatif seperti “7 hari terakhir”. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Aritmetika Tanggal dan INTERVAL” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Aritmetika Tanggal dan INTERVAL
- EXTRACT, DATE_TRUNC, AGE
- Zona Waktu: TIMESTAMP vs TIMESTAMPTZ
- Laporan Tanggal Umum (MTD, WoW, YoY)