Could you make use of the Postgres type tsrange
? This would be instead of storing two dates separately.
https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-BUILTIN
I believe it even supports unbounded ranges:
https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-INFINITE