To be clear I'm not suggesting that you should or shouldn't use the datetime
datatype.
Re: null values, I was also pointing out that one "null" is often not
enough. A null value is generally interpreted as "never been entered" when
in fact that is only one possibility. It may be unknown or unavailable
which may be considered "we entered a null" rather than "it has a null
because we never entered it". There can be "doesn't apply" type nulls as
well as others. These are fairly easy to represent as coded values but with
datetime you have to choose a real datetime to represent each null subtype.
BTW MinDate is a date that could reasonably represent real data. Given the
range of datetime you can't even store Columbus's voyage to America as a
datetime type. Nothing we tend to store consists of MaxDate values however
and I know of no database that has 12/31/9999 as a date which represents
anything real.
I'll also suggest that everybody casts all over the place in order to
display things properly . An item stored as Boolean doesn't imply we want F
or T as the representation of the value. These are often shown as
True/False, Yes/No or what have you and as such are cast to strings. So I
agree it isn't an issue. Basically see if datetime meets your requirements
much like you check if any other data type meets your requirements. Am I
mistaken in believing that if people need to store dates for the first 17
centuries AD they aren't doing it using datetime?
Keep mulling