
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, 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.