Jak działa CURRENT_TIME w języku SQL? Przykłady zastosowania

Jak działa CURRENT_TIME w języku SQL? Przykłady zastosowania

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łny timestamp.

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

KajoDataSpace