Problem:
Chcesz uzyskać aktualny czas w bazie danych PostgreSQL. Nie chcesz przesunięcia strefy czasowej.
Rozwiązanie:
Użyjemy funkcji LOCALTIME
aby uzyskać aktualny czas bez przesunięcia strefy czasowej.
SELECT LOCALTIME;
Oto wynik zapytania:
22:15:51.987914
Dyskusja:
Funkcja PostgreSQL LOCALTIME
zwraca aktualny czas na maszynie z uruchomionym PostgreSQL. Zwraca go jako typ danych czasu w 'gg:mm:ss.nnnnnn format. W tym formacie:
- hh to dwucyfrowa godzina.
- mm to minuta dwucyfrowa.
- ss to 2-cyfrowa sekunda.
- nnnnnn są ułamkami sekund (od zera do 6-cyfrowej precyzji).
Jak zauważyłeś, ta funkcja nie ma nawiasów. Jeśli jednak chcesz wyświetlić czas z określoną dokładnością, użyj nawiasów z liczbą całkowitą od 0 do 6 jako argumentem. Spowoduje to zwrócenie czasu z żądaną liczbą ułamków sekund. Na przykład LOCALTIME(1)
oznacza tylko jeden ułamek sekundy (tj. jedno miejsce po przecinku); 2 zwróci dwa miejsca itd. Wartość domyślna (bez nawiasów lub pustych nawiasów) to sześć, co jest również maksymalną liczbą ułamków sekund. Spójrz na następny przykład:
SELECT LOCALTIME(0) ;
Oto wynik zapytania:
21:12:06
Ten wynik nie zawiera ułamków sekund, ponieważ wstawiamy 0 jako argument.
LOCALTIME
zwraca czas rozpoczęcia bieżącej transakcji. Różnica między LOCALTIME
i CURRENT_TIME
jest to, że LOCALTIME nie obejmuje przesunięcia strefy czasowej.