Commit

b656187

Maybe separate billable month/day/year columns, where null represents “unknown”? You could even expand that to add a -variance column to each so you know writhing that column’s number of years/months/days, or a Boolean “approximate” flag for each column.
That could work for simpler cases, but it gets complicated pretty quickly. EDTF is an existing standard that handles uncertain dates, approximate dates, ranges, open intervals, and unspecified components. The package uses a JSON column to store the EDTF representation and…
loc.govExtended Date Time Format (EDTF) Specification (Library of Congress)Extended Date Time Format. A supporting xml schema allowing for implementation of element set and is maintained in Network Development and MARC Standards Office, Library of Congress.
That said, if you needed more granular queries against the EDTF data itself, you could always use the RDBMS's native JSON functions. That gives you some flexibility without having to add a bunch of dedicated columns.

commit b656187