It should be: std::optional<Timestamp> (or Optional[datetime] or equivalent in others languages)
If you're using a type system that is so poor that it won't easily detect statically places where you're not correctly handling the absent values, you do have a much bigger problem than using bool.