
Jednym z ciekawszych i często używanych funkcji w SQL jest CURRENT_TIME. Jeśli kiedykolwiek zastanawiałeś się, jak w prosty sposób uzyskać aktualną godzinę na poziomie zapytania do bazy danych, to właśnie ta funkcja przychodzi z pomocą. W tym artykule wyjaśnię dokładnie, jak działa CURRENT_TIME w języku SQL i pokażę praktyczne przykłady jej zastosowania.
Co to jest CURRENT_TIME?
Funkcja CURRENT_TIME zwraca bieżący czas systemowy w formacie HH:MI:SS. Oznacza to, że wynik zwrócony przez tę funkcję zależy od systemowego zegara serwera, na którym działa baza danych.
Niektóre systemy baz danych mogą także zwrócić czas z precyzją podsekundową, np. HH:MI:SS.SSS, ale to zależy od konkretnej implementacji.
Podstawowe użycie CURRENT_TIME
Najprostsze użycie CURRENT_TIME wygląda następująco:
SELECT CURRENT_TIME;
Przykładowy rezultat może wyglądać tak:
12:34:56
Gdybyś wykonał to zapytanie kilka sekund później, wynik byłby odpowiednio późniejszy.
Różnice między CURRENT_TIME a innymi funkcjami czasu i daty
SQL oferuje kilka innych funkcji zwracających informację o bieżącym czasie lub dacie. Oto kilka z nich:
CURRENT_DATE– zwraca tylko bieżącą datę, bez godziny.CURRENT_TIMESTAMP– zwraca zarówno bieżącą datę, jak i czas.NOW()– w niektórych bazach danych (np. MySQL i PostgreSQL) zwraca pełnytimestamp.
Zastosowanie funkcji CURRENT_TIME
Funkcji CURRENT_TIME można używać w różnych kontekstach. Oto kilka przykładów:
1. Wstawienie aktualnego czasu do tabeli
Możesz użyć CURRENT_TIME podczas wstawiania danych do tabeli, np. gdy chcesz rejestrować godzinę operacji:
INSERT INTO logi (akcja, godzina)
VALUES ('Logowanie użytkownika', CURRENT_TIME);
2. Pobranie rekordów na podstawie aktualnego czasu
Możesz wyszukać rekordy zależnie od aktualnej godziny. Poniższe zapytanie zwróci wszystkie rekordy zapisane dzisiaj po obecnej godzinie.
SELECT * FROM zamówienia
WHERE godzina_zamówienia > CURRENT_TIME;
3. Formatowanie czasu w zapytaniach
W niektórych systemach baz danych można manipulować formatem zwróconego czasu, na przykład w MySQL:
SELECT DATE_FORMAT(CURRENT_TIME, '%H:%i:%s') AS godzina_formatowana;
Obsługa CURRENT_TIME w różnych bazach danych
CURRENT_TIME działa w większości popularnych systemów baz danych, ale są pewne różnice:
| Silnik bazy danych | Obsługa CURRENT_TIME | Uwagi |
|---|---|---|
| MySQL | Tak | Zwraca czas w formacie HH:MI:SS. |
| PostgreSQL | Tak | Można określić precyzję np. CURRENT_TIME(3) daje milisekundy. |
| SQL Server | Tak | Podobne do SYSDATETIME(), ale bez części daty. |
| Oracle | Nie | Oracle nie obsługuje CURRENT_TIME, ale można użyć SYSDATE lub CURRENT_TIMESTAMP. |
Podsumowanie
Funkcja CURRENT_TIME jest niezwykle przydatna, jeśli chcemy uzyskać aktualną godzinę w SQL. Występuje w większości systemów baz danych i znajduje zastosowanie w logowaniu operacji, przetwarzaniu bieżących zamówień oraz wielu innych scenariuszach.
Jeśli chcesz pracować z bieżącą datą razem z czasem, powinieneś rozważyć użycie CURRENT_TIMESTAMP. Natomiast w przypadku potrzeby formatowania godziny, różne bazy danych oferują narzędzia do manipulacji danymi czasowymi.
Inny ciekawy artykuł:
Jak działa CURRENT_DATE w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

