
Jak działa CURRENT_TIMESTAMP w języku SQL? Przykłady zastosowania
Kiedy pracuję z bazami danych, bardzo często muszę zapisywać informacje o czasie wykonania jakiejś operacji. Tu z pomocą przychodzi funkcja CURRENT_TIMESTAMP. W większości systemów bazodanowych ta funkcja zwraca aktualną datę i godzinę w formacie YYYY-MM-DD HH:MI:SS. Przydatne, prawda? Przyjrzyjmy się jej bliżej.
Co zwraca CURRENT_TIMESTAMP?
Funkcja CURRENT_TIMESTAMP zwraca datę i godzinę w momencie wykonania zapytania SQL. W różnych systemach bazodanowych wynik może obejmować także precyzyjne wartości ułamkowe sekund. Oto kilka przykładów:
| System bazodanowy | Format zwracany przez CURRENT_TIMESTAMP |
|---|---|
| MySQL | 2024-06-10 14:23:45 |
| PostgreSQL | 2024-06-10 14:23:45.678901 |
| SQL Server | 2024-06-10 14:23:45.123 |
Przykłady użycia CURRENT_TIMESTAMP
Teraz przejdźmy do praktycznych przykładów. Oto kilka najczęstszych miejsc, gdzie mogę użyć tej funkcji:
1. Ustawianie domyślnej wartości pola w tabeli
Bardzo często chcę mieć informację, kiedy dany rekord został wstawiony. W MySQL mogę to zrobić tak:
CREATE TABLE zamowienia (
id INT AUTO_INCREMENT PRIMARY KEY,
produkt VARCHAR(100),
ilosc INT,
data_zlozenia TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Teraz, gdy wstawię nowy rekord, kolumna data_zlozenia automatycznie dostanie aktualny czas.
2. Aktualizacja rekordu i zapisywanie czasu zmiany
Jeśli chcę śledzić zmiany w rekordzie, mogę użyć CURRENT_TIMESTAMP w klauzuli UPDATE:
ALTER TABLE zamowienia ADD data_aktualizacji TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Teraz każda zmiana w rekordzie automatycznie zaktualizuje kolumnę data_aktualizacji na aktualny czas.
3. Pobieranie aktualnego czasu w zapytaniach
Czasami po prostu potrzebuję wyświetlić aktualny czas bez zapisywania go do bazy:
SELECT CURRENT_TIMESTAMP;
To zapytanie zwróci coś w stylu 2024-06-10 14:30:12, w zależności od systemu bazodanowego.
CURRENT_TIMESTAMP a inne funkcje czasowe
CURRENT_TIMESTAMP to nie jedyna funkcja operująca na czasie w SQL. Oto kilka popularnych alternatyw:
NOW()– w MySQL zwraca to samo coCURRENT_TIMESTAMP.GETDATE()– w SQL Server zwraca aktualną datę i godzinę.SYSDATE– w Oracle działa podobnie doCURRENT_TIMESTAMP.
Warto sprawdzić dokumentację swojego systemu, żeby wiedzieć, które funkcje są dostępne.
Podsumowanie
CURRENT_TIMESTAMP to niesamowicie przydatna funkcja SQL, która pozwala mi automatycznie śledzić czas dodawania i aktualizacji rekordów. Mogę jej używać zarówno w zapytaniach, jak i w domyślnych wartościach kolumn. Warto pamiętać o różnicach między systemami bazodanowymi i dostosować format zwracanych wartości do swoich potrzeb.
Inny ciekawy artykuł:
Jak działa CURRENT_TIME 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.

