Range of Values
The next chart shows the minimum and maximum date values according to the ANSI/ISO SQL Standard and the Big Eight. (Note: MySQL's minimum is really 0001-01-01; there's an error in its documentation.)
Minimum Value |
Maximum Value |
|
ANSI SQL |
0001-01-01 |
9999-12-31 |
IBM |
0001-01-01 |
9999-12-31 |
Informix |
0001-01-01 |
9999-12-31 |
Ingres |
0001-01-01 |
9999-12-31 |
InterBase |
0001-01-01 |
9999-12-31 |
Microsoft |
1753-01-01 |
9999-12-31 |
MySQL |
1000-01-01 |
9999-12-31 |
Oracle |
4713-01-01 BC |
9999-12-31 |
Sybase |
1753-01-01 |
9999-12-31 |
Generally, the range of values is between the year 1 and the year 9999, but what's interesting is the odd-looking minimum date values for Microsoft, Oracle, and Sybase.
The explanation of Microsoft and Sybase's minimum date is that they're trying to avoid the questions that arise with date arithmetic that uses the Julian calendar rules (which we'll discuss in the next section, "The Western Calendar").
Oracle's minimum date can be explained by the fact that it's allowing for all the Julian Day Numbers (see the section "Julian Day Numbers," below). Incidentally, we are very sure that the minimum value is 4713 BCwe know that the Oracle manual says 4712 BC, but the manual is wrong.