Handling Dates Part 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ç yararlı fonksiyon sağlar. İşte bazı yaygın tarih fonksiyonları:
DATE()- Bir dizeyi tarihe dönüştürürSTRFTIME()- Tarihleri belirtilen parametrelere göre biçimlendirirDATE('now')- Mevcut tarihi alır:
Örneğin, dizeyi tarihe dönüştürme:
SELECT DATE('2023-05-15 13:45:00')
-- Şunu döndürür: 2023-05-15
SELECT DATE('now')
-- Mevcut 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')
-- Sonuç: 2023
-- Ayı al
SELECT STRFTIME('%m', '2023-05-15')
-- Sonuç: 05
-- Günü al
SELECT STRFTIME('%d', '2023-05-15')
-- Sonuç: 15
-- Yıl ve gün kombinasyonunu göster (herhangi bir ayırıcı kullanılabilir)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Sonuç: 2023:15
-- Bunun yerine tire ayırıcı kullanın
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Sonuç: 15-05-2023
-- Haftanın gününü al
SELECT STRFTIME('%w', '2023-05-15')
-- Sonuç: 1 (Pazartesi; Pazar 0'dır)Yaygın format belirleyiciler:
- %Y: Yıl (4 basamaklı)
- %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)
Belirleyiciler arasında herhangi bir ayırıcı karakter kullanabilirsiniz (örneğin -, :, /). Örneğin, STRFTIME('%d-%m-%Y', date) ve STRFTIME('%d:%m:%Y', date) ifadelerinin her ikisi de gün, ay ve yılı birleştirir — sadece farklı ayırıcılarla.
Bu fonksiyonları sorgularda birleştirebilirsiniz:
-- Mevcut yıla ait tüm kayıtları bul
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')Görev
KolayMevcut tablolar ve sütunlar:
<strong>events</strong>:<strong>id</strong>,<strong>start</strong>,<strong>end</strong>
Şunları gösteren bir sorgu yazın:
- Etkinlik ID'si
- "DD-MM-YYYY" olarak formatlanmış başlangıç tarihi. Bu sütunu
formatted_startolarak adlandırın - "DD-MM-YYYY" olarak formatlanmış bitiş tarihi. Bu sütunu
formatted_endolarak adlandırın - Başlangıç ve bitiş arasındaki gün cinsinden süre, en yakın tam sayıya yuvarlanmış olarak. Bu sütunu
duration_daysolarak adlandırın
Yalnızca start sütununun yılının 2009 olduğu satırları filtreleyin (STRFTIME() bir sayı değil, bir dize döndürür).
Sonuçları süre günlerine 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.
Kopya kağıdı
SQL, tarihleri işlemek ve biçimlendirmek için birkaç yararlı fonksiyon sunar:
DATE()- Bir dizeyi tarihe dönüştürürSTRFTIME()- Tarihleri belirtilen parametrelere göre biçimlendirirDATE('now')- Geçerli tarihi alır
Dizeyi tarihe dönüştürme:
SELECT DATE('2023-05-15 13:45:00')
-- Returns: 2023-05-15
SELECT DATE('now')
-- Returns current dateSTRFTIME() kullanarak tarih bölümlerini ayıklama:
-- Get year
SELECT STRFTIME('%Y', '2023-05-15')
-- Returns: 2023
-- Get month
SELECT STRFTIME('%m', '2023-05-15')
-- Returns: 05
-- Get day
SELECT STRFTIME('%d', '2023-05-15')
-- Returns: 15
-- Show combination of year and day
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Returns: 2023:15Yaygın biçim belirleyicileri:
- %Y: Yıl (4 haneli)
- %m: Ay (01-12)
- %d: Ayın günü (01-31)
- %H: Saat (00-23)
- %M: Dakika (00-59)
- %S: Saniye (00-59)
WHERE yan tümcelerinde kullanım:
-- Find all records from current year
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')JULIANDAY() kullanarak tarih farklarını hesaplama:
JULIANDAY(end_date) - JULIANDAY(start_date)Kendin dene
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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns