Obsługa dat — część 3
Część sekcji Podstawy ścieżki SQL w Coddy. Lekcja 33 z 72.
SQL udostępnia kilka przydatnych funkcji do manipulowania datami i ich formatowania. Oto kilka typowych funkcji daty:
DATE()- Konwertuje ciąg znaków na datęSTRFTIME()- Formatuje daty zgodnie z określonymi parametramiDATE('now')- Pobiera bieżącą datę:
Na przykład przekonwertuj ciąg znaków na datę:
SELECT DATE('2023-05-15 13:45:00')
-- Zwraca: 2023-05-15
SELECT DATE('now')
-- Zwraca bieżącą datęNa przykład wyodrębnij rok, miesiąc i dzień z daty:
-- Pobierz rok
SELECT STRFTIME('%Y', '2023-05-15')
-- Zwraca: 2023
-- Pobierz miesiąc
SELECT STRFTIME('%m', '2023-05-15')
-- Zwraca: 05
-- Pobierz dzień
SELECT STRFTIME('%d', '2023-05-15')
-- Zwraca: 15
-- Wyświetl połączenie roku i dnia (można użyć dowolnego separatora)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Zwraca: 2023:15
-- Użyj zamiast tego myślnika jako separatora
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Zwraca: 15-05-2023
-- Pobierz dzień tygodnia
SELECT STRFTIME('%w', '2023-05-15')
-- Zwraca: 1 (poniedziałek; niedziela to 0)Typowe specyfikatory formatu:
- %Y: Rok (4 cyfry)
- %m: Miesiąc (01–12)
- %d: Dzień miesiąca (01–31)
- %w: Dzień tygodnia (0–6, niedziela to 0)
- %H: Godzina (00–23)
- %M: Minuta (00–59)
- %S: Sekunda (00–59)
Między specyfikatorami możesz użyć dowolnego znaku separatora (np. -, :, /). Na przykład STRFTIME('%d-%m-%Y', date) i STRFTIME('%d:%m:%Y', date) łączą dzień, miesiąc i rok, różniąc się jedynie separatorami.
Możesz łączyć te funkcje w zapytaniach:
-- Znajdź wszystkie rekordy z bieżącego roku
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')Wyzwanie
ŁatwyDostępne tabele i kolumny:
events:id,start,end
Napisz zapytanie, które wyświetla:
- ID wydarzenia
- Datę rozpoczęcia sformatowaną jako "DD-MM-YYYY". Nazwij tę kolumnę
formatted_start - Datę zakończenia sformatowaną jako "DD-MM-YYYY". Nazwij tę kolumnę
formatted_end - Czas trwania w dniach między rozpoczęciem a zakończeniem, zaokrąglony do najbliższej liczby całkowitej. Nazwij tę kolumnę
duration_days
Odfiltruj tylko wiersze, w których rok w kolumnie start to 2009 (STRFTIME() zwraca ciąg znaków, a nie liczbę).
Posortuj wyniki według czasu trwania w dniach w kolejności malejącej.
Przypomnienie: Aby obliczyć różnicę między datami, użyj: JULIANDAY(end) - JULIANDAY(start), a do zaokrąglania do liczb całkowitych użyj ROUND().
Spróbuj swoich sił
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Więcej słów kluczowych
Słowo kluczowe INSłowo kluczowe BETWEENSłowo kluczowe LIKESłowo kluczowe ASPowtórzenie – modele telefonów komórkowych2Instrukcje warunkowe
Podstawy instrukcji warunkowychSłowo kluczowe ANDSłowo kluczowe ORSłowo kluczowe NOTŁączenie wielu warunkówNawiasyWartości logiczne3Określony format zwracanych danych
Wartości nullSortowanie wyników — część 1Sortowanie wyników — część 2Powtórzenie — firma zajmująca się cyberbezpieczeństwemOgraniczanie liczby rekordówPowtórzenie — fabryka pojazdów6Wyzwania na początek
Powtórka – wybory parlamentarnePowtórka – zatrzymanie przestępcy przez policjęPowtórka – pojemnik na napój w barzePowtórka – inżynier: nowe kolumnyPoćwicz samodzielnie: Edytor online SQL