PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL tsrange:ist es richtig, dass lower_inf('(-infinity,today)'::tsrange) falsch ist?

Die Verwirrung rührt von zwei unterschiedlichen Bedeutungen von "Unendlichkeit" her hier.

  1. timestamp Typen akzeptieren Sonderwerte für infinity und -infinity .
  2. Bereichstypen haben ein allgemeines Konzept für Bereiche ohne Unter-/Obergrenze. Die zu testenden Funktionen heißen lower_inf() und upper_inf() , aber sie testen wirklich auf "no bound" in der Reichweite. Bereiche ohne Ober-/Untergrenze include der Wert infinity / -infinity für timestamp bzw..

Das Handbuch:

SQL-Fiddle.

Vielleicht sollten diese Funktionen wirklich so etwas wie lower_nobound() heißen und upper_nobound() um Verwirrung zu vermeiden ...