Looking at the MySQL documentation for the DATETIME data type it clearly states that the valid range is '1000-01-01' to '9999-12-31'. However, I found that it was possible to insert the value 0001-00-00 00:00:00 - this is clealy out of the designated range.
My guess is that this has something to do with server modes - but I can't seem to work out how to enforce this range. I tried sql-mode=NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLE and whilst this stopped me from having zeros in the date in did not enforce the range.
I read that scentence round the other way i.e. I thought it meant: the range is X to Y and earlier versions might have a smaller range. Whereas I think you read it to mean: the range is X to Y but the range may be differ dependent on the version. Anyway, I think I'm reading into this too much
I wasn't really asking because of a concrete problem. I'm in the process of writing a PHP article about dates and time zones so wanted to quote the valid range for this data type.
I wonder if the range is affected by the engine being used? If so it would make sense that the quoted range would be for the lowest common denomenator.