Tarih Aritmetiği ve INTERVAL
INTERVAL ile tarih ekleyip çıkarın, süreleri hesaplayın ve «son 7 gün» gibi göreli tarih süzgeçleri oluşturun.
Tarih Aritmetiği ve INTERVAL, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
Tarih ve Saat Türleri Özeti
PostgreSQL'deki dört temel zamansal tür:
DATE— saat içermeyen takvim günüTIME— gün içindeki saatTIMESTAMP— tarih + saat, ZONE yokTIMESTAMPTZ— tarih + saat + ZONE (olaylar için önerilir)
INTERVAL: Zaman Aralığı
INTERVAL bir süredir. Bunu bir tarih/zaman damgasına ekleyebilir veya ondan çıkarabilirsiniz:
SELECT NOW() + INTERVAL '1 day';
SELECT NOW() - INTERVAL '30 days';
SELECT NOW() + INTERVAL '3 months 2 weeks';
SELECT INTERVAL '1 hour' + INTERVAL '15 minutes';INTERVAL Birimleri
year, month, week, day, hour, minute, second birimlerini (tekil veya çoğul biçimde) kullanabilirsiniz:
SELECT INTERVAL '2 years 6 months';
SELECT INTERVAL '1 week';
SELECT INTERVAL '90 seconds';Yaygın Göreli Tarih Filtreleri
En sık kullanılan "son N gün" sorguları:
SELECT * FROM orders
WHERE created_at >= NOW() - INTERVAL '7 days';
SELECT * FROM events
WHERE created_at >= CURRENT_DATE - INTERVAL '1 month';DATE Değerine Gün Ekleme
PostgreSQL, "N gün ekle" anlamında date + integer kullanımına da izin verir:
SELECT DATE '2024-01-01' + 30; -- 2024-01-31
SELECT DATE '2024-01-01' - 1; -- 2023-12-31İki Zaman Damgasını Çıkarma
İki zaman damgasının farkı bir INTERVAL değeridir:
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: İnsanların Anlayacağı Fark
AGE(end, start), yıl-ay-gün biçiminde bir INTERVAL döndürür:
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;Ay Eklerken Dikkat
Ay eklemek takvim hesabına dayanır. 2024-01-31 + 1 month = 2024-02-29 (sınırlandırılır):
SELECT DATE '2024-01-31' + INTERVAL '1 month'; -- 2024-02-29
SELECT DATE '2024-03-31' + INTERVAL '1 month'; -- 2024-04-30CURRENT_DATE ve NOW()
Döndürülen türler farklıdır — ihtiyacınıza uygun olanı seçin:
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_TIMESTAMPParçalardan Tarih Oluşturma
Tarihleri tamsayı sütunlarından oluşturun:
SELECT MAKE_DATE(year, month, day) FROM birthdays;
SELECT MAKE_TIMESTAMP(2024, 3, 15, 14, 30, 0.0);Tarih İfadeleri Üzerinde Dizinler
created_at üzerindeki bir dizin, aralık sorgularını iyi şekilde işler. "Mart ayındaki olaylar" için aralık filtresi, ayı kırpmaktan daha hızlıdır:
-- 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';Özet
SQL'deki tarih aritmetiği kapsamlı ve güvenilirdir.
- Süreler için INTERVAL
- Doğrudan ekleme/çıkarma
- İnsanların anlayacağı aralıklar için AGE
- Yarı açık aralıklar dizinler için en uygunudur
Hızlı Kontrol
Hangi ifade son 7 gündeki olayları döndürür?
Sıkça Sorulan Sorular
“Tarih Aritmetiği ve INTERVAL” dersi ücretsiz mi?
Evet — “Tarih Aritmetiği ve INTERVAL” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“Tarih Aritmetiği ve INTERVAL” dersinde ne öğreneceğim?
INTERVAL ile tarih ekleyip çıkarın, süreleri hesaplayın ve «son 7 gün» gibi göreli tarih süzgeçleri oluşturun. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Tarih Aritmetiği ve INTERVAL” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Tarih Aritmetiği ve INTERVAL
- EXTRACT, DATE_TRUNC, AGE
- Saat Dilimleri: TIMESTAMP ve TIMESTAMPTZ
- Yaygın Tarih Raporları (MTD, WoW, YoY)