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

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

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 co CURRENT_TIMESTAMP.
  • GETDATE() – w SQL Server zwraca aktualną datę i godzinę.
  • SYSDATE – w Oracle działa podobnie do CURRENT_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

KajoDataSpace