Posted on 2004-08-19
Why does SQL Server's datetime data type and date functions work only back to the year 1753?
PLEASE note: I'm *not* asking what the useable range of years is (1753 to 9999). I'm *not* asking for work-arounds to deal with other years. And I'm *not* asking how the datetime values are stored.
Microsoft hired some of the best brains around to engineer SQL Server from the ground up, and I think it's reasonable to assume they did things for good reasons. I want to know *why* they didn't design the datetime components to work with years before the year 1753.
What's so special about that year?
<various quotes from BOL>
Microsoft® SQL Server™ rejects all values it cannot recognize as dates between 1753 and 9999.
Date and time data from January 1, 1753 through December 31, 9999, to an accuracy of one three-hundredth of a second (equivalent to 3.33 milliseconds or 0.00333 seconds). Values are rounded to increments of .000, .003, or .007 seconds, as shown in the table.
datetime data type
A SQL Server system data type that stores a combined date and time value from January 1, 1753, through December 31, 9999, with an accuracy of three-hundredths of a second, or 3.33 milliseconds.