0Pricing
SQL Academy · Ders

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 saat
  • TIMESTAMP — tarih + saat, ZONE yok
  • TIMESTAMPTZ — 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-30

CURRENT_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_TIMESTAMP

Parç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

  1. Tarih Aritmetiği ve INTERVAL
  2. EXTRACT, DATE_TRUNC, AGE
  3. Saat Dilimleri: TIMESTAMP ve TIMESTAMPTZ
  4. Yaygın Tarih Raporları (MTD, WoW, YoY)
← SQL Academy Sayfasına Dön