I've got on my hands a paper database with records from 1955 to now. Recordkeeping was sloppy for a long time, up until 1984. Handwritten cards often had just month and year since the date wasn't considered that important, but rubber stamped cards would have full date. A few cards suffer from smudges, poor handwriting, etc. but not that many.
It would be great if a database would accept 1971/8/0 as August ??, 1971 and 1959/0/0 if only the year is extant (probably few or no such cards). Making separate day/month/year columns seems workable if not a little unwieldy. Are there better ways to handle the situation?
In any database platform, you should be able to default records with missing years to a default year, and records with missing dates to January 1st. The logic is not complex, but you will need to apply it as the records are being inserted.
If it's not practically useful, then it's practically useless.