11.3.4.Y2K事宜和日期類型
11.3.4. Y2K事宜和日期類型
MySQL本身對于2000年(Y2K)是安全的(參見1.4.5節,“2000年兼容性”),但輸入給MySQL的值可能不安全。任何包含兩位年值的輸入都會令人模糊,因為世紀不知道。這些值必須解釋為四位形式,因為MySQL內部使用四位來保存年。
對于DATETIME、DATE、TIMESTAMP和YEAR類型,MySQL使用以下規則解釋含模糊年值的日期:
· 00-69范圍的年值轉換為2000-2069。
· 70-99范圍的年值轉換為1970-1999。
請記住這些規則只是合理猜測數據值表示什么。如果MySQL使用的啟發不能產生正確的值,你應提供包含四位年值的確切輸入。
ORDER BY可以正確排序有兩位年的TIMESTAMP或YEAR值。
部分函數如MIN()和MAX()將TIMESTAMP或YEAR轉換為一個數字。這說明使用有兩位年值的值,這些函數不能工作正確。在這種情況下的修復方法是將TIMESTAMP或YEAR轉換為四位年格式或使用MIN(DATE_ADD(TIMESTAMP,INTERVAL 0 DAYS))。