• Not sure how this one got through quality control, as the explanation is entirely wrong.

    The value of '1900-01-01' does not arise because of any default - the default will not come into play becauise a value has been specified, and in any case the default is getdate().

    The value arises because the specified value ' ' is implicitly cast to datetime, and casting an empty string to a date gives that value.

    select cast(' ' as datetime)

    will give '1900-01-01 00:00:00.000'