Menu
Coddy logo textTech

Tarihleri İşleme Bölüm 3

Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası. Ders 33 / 72.

SQL, tarihleri işlemek ve biçimlendirmek için birkaç kullanışlı işlev sunar. İşte bazı yaygın tarih işlevleri:

  1. DATE() - Bir dizeyi tarihe dönüştürür
  2. STRFTIME() - Tarihleri belirtilen parametrelere göre biçimlendirir
  3. DATE('now') - Geçerli tarihi alır:

Örneğin dizeyi tarihe dönüştürün:

SELECT DATE('2023-05-15 13:45:00')
-- Döndürür: 2023-05-15

SELECT DATE('now')
-- Geçerli tarihi döndürür

Örneğin tarihten yıl, ay ve günü çıkarın:

-- Yılı al
SELECT STRFTIME('%Y', '2023-05-15')
-- Döndürür: 2023

-- Ayı al
SELECT STRFTIME('%m', '2023-05-15')
-- Döndürür: 05

-- Günü al
SELECT STRFTIME('%d', '2023-05-15')
-- Döndürür: 15

-- Yıl ve gün kombinasyonunu göster (herhangi bir ayırıcı kullanılabilir)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Döndürür: 2023:15

-- Bunun yerine tire ayırıcı kullan
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Döndürür: 15-05-2023

-- Haftanın gününü al
SELECT STRFTIME('%w', '2023-05-15')
-- Döndürür: 1 (Pazartesi; Pazar 0'dır)

Yaygın biçim belirteçleri:

  • %Y: Yıl (4 basamak)
  • %m: Ay (01-12)
  • %d: Ayın günü (01-31)
  • %w: Haftanın günü (0-6, Pazar 0'dır)
  • %H: Saat (00-23)
  • %M: Dakika (00-59)
  • %S: Saniye (00-59)

Belirteçler arasında herhangi bir ayırıcı karakter kullanabilirsin (ör. -, :, /). Örneğin, STRFTIME('%d-%m-%Y', date) ve STRFTIME('%d:%m:%Y', date) farklı ayırıcılarla yalnızca günü, ayı ve yılı birleştirir.

Bu işlevleri sorgularda birleştirebilirsiniz:

-- Mevcut yıldaki tüm kayıtları bul
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')
challenge icon

Görev

Kolay

Mevcut tablolar ve sütunlar:

  • events: id, start, end

Şunları gösteren bir sorgu yazın:

  • Olay kimliği
  • "DD-MM-YYYY" biçiminde biçimlendirilmiş başlangıç tarihi. Bu sütuna formatted_start adını verin
  • "DD-MM-YYYY" biçiminde biçimlendirilmiş bitiş tarihi. Bu sütuna formatted_end adını verin
  • Başlangıç ve bitiş arasındaki gün cinsinden süreyi en yakın tam sayıya yuvarlayın. Bu sütuna duration_days adını verin

Yalnızca start sütununun yılının 2009 olduğu satırları filtreleyin (STRFTIME() bir sayı değil, dize döndürür).

Sonuçları gün cinsinden süreye göre azalan düzende sıralayın.

Hatırlatma: Tarihler arasındaki farkı hesaplamak için JULIANDAY(end) - JULIANDAY(start) kullanın ve tam sayılara yuvarlamak için ROUND() kullanın.

Kendin dene

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: SQL playground