How can I keep “approximate” date data points?
There is no "standard" way.  You need to invent something, then write app code to handle it.  Some thoughts:


Strings like what you suggest.  Pro: displays nicely; Con: hard to parse.
Strings, but more like 2018Q1, 201809, or whatever.  Pros/cons:  Somewhat readable; somewhat parsable.
DATE, with the day of the beginning (or end?) of the period, plus another column that says day or month or quarter or annual.  That could be an ENUM or some other technique.  Pro: somewhat sortable.