
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, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.