這是MySQL 5實力養成暨評量裡的4-37.『在MySQL中,下列哪些是時間日期資料型態?』
答案:(A)DATETIME(B)DATE(C)TIMESTAMP(D)TIME
朋友們可以參考MySQL 5.6 Reference Manual :: 11 Data Types :: 11.3 Date and Time Types
跟
MySQL 5.1參考手冊 :: 11.列類型::11.3. 日期和時間類型
繁體中文轉譯如下:
表示時間值的DATE和時間日期資料型態為DATETIME、DATE 、TIMESTAMP、TIME和YEAR。每個時間日期資料型態有一個有效值範圍和一個“ 零 ”值,當指定不合法的MySQL不能表示的值時使用“ 零 ”值。TIMESTAMP資料型態有專有的自動更新特性,將在後面描述。
如果試圖插入一個不合法的日期,MySQL將給出警告或錯誤。可以使用ALLOW_INVALID_DATES SQL模式讓MySQL接受某些日期,例如’1999-11-31’。當你想要保存一個“ 可能錯誤的 ”用戶已經在資料庫中指定(例如,以web形式)用於將來處理的值時很有用。在這種模式下,MySQL只驗證月範圍為從0到12,日範圍為從0到31。這些範圍可以包括零,因為MySQL允許在DATE或DATETIME列保存日/月和日是零的日期。這在應用程序需要保存一個你不知道確切日期的生日時非常有用。在這種情況下,只需要將日期保存為’1999-00-00’或’1999-01-00’。如果保存此類日期,DATE_SUB()或DATE_ADD等需要完整日期的函數不會得到正確的結果。(如果你不想在日期中出現零,可以使用NO_ZERO_IN_DATE SQL模式)。
MySQL還允許將’0000-00-00’保存為“偽日期” (如果不使用NO_ZERO_DATE SQL模式)。這在某些情況 下比使用NULL值更方便(並且資料和索引佔用的空間更小)。