PostgreSQL 9.2 tstzrange null/infinity CONSTRAINT CHECK
The simple checks work as desired:

CHECK ( lower(period) &gt; '-infinity' )


and 

CHECK ( upper(period) &lt; 'infinity' )


Therefore, you can have:

CREATE TABLE bill
(
  id serial NOT NULL,
  created_at timestamp with time zone NOT NULL DEFAULT now(),
  period tstzrange NOT NULL,
  -- other columns
  CONSTRAINT bill_pk PRIMARY KEY (id),
  CONSTRAINT bill_period_lower_not_null_ck CHECK (lower(period) IS NOT NULL),
  CONSTRAINT bill_period_upper_not_null_ck CHECK (upper(period) IS NOT NULL),
  CONSTRAINT bill_period_lower_not_infinity_ck 
    CHECK ( lower(period) &gt; '-infinity' ),
  CONSTRAINT bill_period_upper_not_infinity_ck 
    CHECK ( upper(period) &lt; 'infinity' )
);