0Pricing
SQL Academy · Ders

EXTRACT, DATE_TRUNC, AGE

EXTRACT ile bir tarihin parçalarını alın, DATE_TRUNC ile zaman damgalarını bir sınıra yuvarlayın ve AGE ile insan tarafından okunabilir farklar hesaplayın.

EXTRACT, DATE_TRUNC, AGE, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 2. 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.

EXTRACT: Tarih Parçası Alma

EXTRACT(part FROM ts), tek bir sayısal bileşen döndürür:

SELECT EXTRACT(YEAR  FROM created_at) AS yr,
       EXTRACT(MONTH FROM created_at) AS mo,
       EXTRACT(DAY   FROM created_at) AS d,
       EXTRACT(DOW   FROM created_at) AS day_of_week
FROM orders;

Yaygın EXTRACT Parçaları

Kullanışlı parçalar: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, DOW (0=Sun), DOY (1–366), WEEK, QUARTER, EPOCH.

SELECT EXTRACT(EPOCH FROM (NOW() - created_at)) AS seconds_ago
FROM events;

DATE_TRUNC: Bir Sınıra Yuvarlama

DATE_TRUNC(unit, ts), birimin altındaki her şeyi sıfırlar — gruplandırılmış raporlar için en kullanışlı işlevdir:

SELECT date_trunc('day',   NOW());   -- 2024-03-15 00:00:00
SELECT date_trunc('week',  NOW());
SELECT date_trunc('month', NOW());
SELECT date_trunc('hour',  NOW());

Gruplandırılmış Raporlar

date_trunc kullanarak aylık gelir:

SELECT date_trunc('month', created_at) AS month,
       SUM(total) AS revenue
FROM orders
GROUP BY 1
ORDER BY 1;

Yıl Başından Bugüne / Ay Başından Bugüne

Geçerli dönemi, geçen yılın aynı noktasındaki dönemle karşılaştırın:

-- This month so far
SELECT SUM(total) FROM orders
WHERE created_at >= date_trunc('month', NOW())
  AND created_at <  date_trunc('month', NOW()) + INTERVAL '1 month';

AGE: Takvimi Dikkate Alan Fark

AGE yalnızca günleri değil, yıl + ay + gün değerlerini döndürür:

SELECT AGE('2024-03-15', '2020-12-01');
-- → '3 years 3 months 14 days'

SELECT EXTRACT(YEAR FROM AGE('2024-03-15', '2020-12-01'));  -- 3

İki Bağımsız Değişkenli AGE Davranışı

Tek bağımsız değişkenli AGE, current_date ile karşılaştırma yapar:

SELECT AGE(birth_date) FROM users LIMIT 5;

Haftanın Günü Mantığı

EXTRACT(DOW): 0=Pazar … 6=Cumartesi. ISO_DOW: 1=Pazartesi … 7=Pazar.

SELECT * FROM orders
WHERE EXTRACT(ISODOW FROM created_at) IN (6, 7);  -- weekend orders

EXTRACT İçinde ZONE Kullanımı

TIMESTAMPTZ üzerinde EXTRACT, oturumun ZONE ayarını kullanır. ZONE'u denetlemek için AT TIME ZONE kullanın:

SELECT EXTRACT(HOUR FROM created_at AT TIME ZONE 'UTC') FROM events;
SELECT EXTRACT(HOUR FROM created_at AT TIME ZONE 'Europe/Berlin') FROM events;

Özel Zaman Aralığına Göre Kırpma

Takvim tabanlı olmayan aralıklar için (her 5 dakikada bir) aritmetik kullanın:

SELECT to_timestamp(
  floor(EXTRACT(EPOCH FROM created_at) / 300) * 300
) AS bucket_5min,
COUNT(*)
FROM events
GROUP BY 1
ORDER BY 1;

Kırpma İçin İşlevsel Dizinler

Sık sık date_trunc('day', created_at) ile GROUP BY kullanıyorsanız, işlevsel bir dizin yardımcı olur:

CREATE INDEX events_day_idx ON events ((date_trunc('day', created_at)));

Özet

EXTRACT + DATE_TRUNC + AGE, raporlama ihtiyaçlarının çoğunu karşılar.

  • Bireysel parçalar için EXTRACT
  • Bir sınıra yuvarlamak için DATE_TRUNC
  • Takvimi dikkate alan aralıklar için AGE

Hızlı Kontrol

Yeni kullanıcıların aylık sayısını istiyorsunuz. Tarihleri aya göre hangi işlev gruplandırır?

Sıkça Sorulan Sorular

“EXTRACT, DATE_TRUNC, AGE” dersi ücretsiz mi?

Evet — “EXTRACT, DATE_TRUNC, AGE” 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.

“EXTRACT, DATE_TRUNC, AGE” dersinde ne öğreneceğim?

EXTRACT ile bir tarihin parçalarını alın, DATE_TRUNC ile zaman damgalarını bir sınıra yuvarlayın ve AGE ile insan tarafından okunabilir farklar hesaplayın. 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 2. dersidir.

“EXTRACT, DATE_TRUNC, AGE” 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