Data with variable precision

In the application I'm working on, there are some fields where the available data is sometimes very precise and sometimes less precise.

For example - I know my own birth date and time, but for some of my ancestors know only the date or even only the year.

Another example - I know the exact street address where I was born, but might know only a town, or even only the country for some of my ancestors.

Is there a standard approach for storing data like this? If not, are there commonly used techniques?

I suggest you store each bit of information as individual properties. That way you can store what you have and refine them if/when you get additional information. Neo4j has Date and Time types, so you can store birthdates separately from birth time.

There isn't any standard for this that I've been able to find, though there are folks who deal with this in various ways - libraries with very old books, whose publication dates are uncertain, and genealogy/family history types.

Many of the groups use text based formats, which don't really work for a DB app where searches are a key feature.

So I'm going to experiment with using a single date field that represents either the exact date or date/time, the approximate date (as best as known), or the beginning of the range. There will be a second field that uses codes to qualify the precision of the date value and/or the size of the range.

One of the groups used a similar thing, though they specified that the date was end of the time range. I'm not sure if it matters.