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 ordersEXTRACT İç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
- Tarih Aritmetiği ve INTERVAL
- EXTRACT, DATE_TRUNC, AGE
- Saat Dilimleri: TIMESTAMP ve TIMESTAMPTZ
- Yaygın Tarih Raporları (MTD, WoW, YoY)