Problem:
Chcesz uzyskać aktualny czas z przesunięciem strefy czasowej w bazie danych PostgreSQL.
Rozwiązanie:
Użyjemy funkcji CURRENT_TIME, aby uzyskać aktualny czas i informacje o strefie czasowej. Oto zapytanie, które napiszesz:
SELECT CURRENT_TIME;
Oto wynik zapytania:
16:10:11.232455-05
Dyskusja:
Funkcja PostgreSQL CURRENT_TIME
zwraca aktualny czas i przesunięcie strefy czasowej maszyny, na której działa PostgreSQL. Jest podawana jako wartość w 'hh:mm:ss.nnnnnn+/-tz' format. W tym formacie:
- hh to dwucyfrowa godzina.
- mm to minuta dwucyfrowa.
- ss to 2-cyfrowa sekunda.
- nnnnnn określa liczbę ułamków sekund (tj. precyzję) od 0 do 6.
- +tz lub -tz jest przesunięciem strefy czasowej, plusem lub minusem względem UTC.
CURRENT_TIME
nie ma nawiasów. Jeśli jednak chcesz wyświetlać czas z określoną dokładnością, możesz dodać nawiasy i zawrzeć liczbę całkowitą od 0 do 6. (argument „0” nie zwróci ułamka sekundy, „1” zwróci jeden ułamek sekundy (np. jeden). miejsce po przecinku) itp. Spowoduje to zwrócenie czasu z zadeklarowaną liczbą ułamków sekund i przesunięciem strefy czasowej. Spójrz na następny przykład:
SELECT CURRENT_TIME(2) ;
Oto wynik zapytania:
16:10:11.23-05
Ten wynik zawiera dwucyfrowy ułamek sekundy, ponieważ jako argument umieściliśmy 2. Przesunięcie strefy czasowej jest wyświetlane jako dodatnie lub ujemne (+ lub -) w zależności od tego, czy czas jest przed czy za UTC.
Czas zwracany przez tę funkcję nie zmienia się podczas transakcji lub pojedynczego zapytania. Zawsze jest to czas rozpoczęcia transakcji.