W PostgreSQL funkcja isfinite()
testy funkcjonalne dla skończonej daty, znacznika czasu lub interwału.
Może to być przydatne, ponieważ Postgres obsługuje nieskończone daty/znaczniki czasu. Na przykład możesz mieć znacznik czasu nieskończoności lub ujemnej nieskończoności, a ta funkcja pozwala to przetestować.
Składnia
Funkcja przyjmuje jeden parametr, którym może być data , sygnatura czasowa lub przedział :
isfinite(date)
isfinite(timestamp)
isfinite(interval)
Przykład
Oto przykład, jak to działa z datą wartość.
SELECT isfinite(date '2020-10-23');
Wynik:
True
W zależności od tego, gdzie go uruchomisz, możesz otrzymać true
lub false
lub t
lub f
wynik.
Otrzymałem powyższy wynik podczas korzystania z usługi Azure Data Studio.
Kiedy uruchamiam go w psql , otrzymuję następujący wynik:
t
sygnatura czasowa
Tutaj jest z sygnaturą czasową wartość.
SELECT isfinite(timestamp '2020-10-23 12:30:45');
Wynik:
True
Odstęp
Tutaj jest z interwałem wartość.
SELECT isfinite(interval '2 hours 30 minutes');
Wynik:
True
Nieskończoność
Wszystkie poprzednie przykłady zwracają prawdę. Oto taki, który zwraca fałsz. W tym przypadku używam infinity
stała.
SELECT isfinite('infinity'::timestamp);
Wynik:
False
Ujemna nieskończoność
Ten sam wynik przy użyciu ujemnej nieskończoności.
SELECT isfinite('-infinity'::timestamp);
Wynik:
False