W PostgreSQL, timeofday()
to niestandardowa funkcja czasu w języku SQL, która zwraca bieżącą datę i godzinę ze skrótem strefy czasowej.
Jest podobny do clock_timestamp()
funkcja, z wyjątkiem tego, że zwraca swój wynik w postaci sformatowanego text
string zamiast timestamp with time zone
wartość.
Wynik obu funkcji zmienia się w trakcie wykonywania instrukcji. Dlatego możesz uzyskać różne wyniki w różnych częściach instrukcji, jeśli wielokrotnie wywołasz funkcje w ramach jednej instrukcji.
Składnia
Składnia wygląda tak:
timeofday()
Więc nie przyjmuje żadnych parametrów.
Przykład
Oto podstawowy przykład do zademonstrowania.
SELECT timeofday();
Wynik:
Czw. Lip 02 10:00:27.068776 2020 CEST
Wiele połączeń
Oto podstawowy przykład pokazujący, jak wyniki mogą się różnić, gdy wielokrotnie wywołasz funkcję w ramach jednej instrukcji SQL.
\x
SELECT
timeofday(),
pg_sleep(5),
timeofday(),
pg_sleep(3),
timeofday();
Wynik (przy użyciu wyjścia pionowego):
Tutaj użyłem pg_sleep()
funkcja opóźnienia wykonania o kilka sekund. Pierwsze połączenie opóźnia wykonanie o 5 sekund, a drugie połączenie opóźnia wykonanie o 3 sekundy.
Widzimy, że za każdym razem timeofday()
został wywołany, rzeczywisty czas był nieco inny. Wynika to głównie z pg_sleep()
funkcja, jednak bez niej może być nieco inna, w zależności od szybkości działania zapytania.
Oto znowu bez pg_sleep()
połączeń.
SELECT
timeofday(),
timeofday(),
timeofday();
Wynik (przy użyciu wyjścia pionowego):
Te przykłady używają pionowego wyjścia (zwykle nazywanego rozszerzonym wyświetlaniem w psql), aby ułatwić odczytanie wyników.
Możesz przełączać rozszerzone wyświetlanie w psql za pomocą \x
.