MySQL 以 'hh:mm:ss'
格式(對於較大的小時值,則為 'hhh:mm:ss'
格式)擷取和顯示 TIME
值。TIME
值的範圍可能從 '-838:59:59'
到 '838:59:59'
。小時部分可能很大,因為 TIME
類型不僅可以用於表示一天中的時間(必須小於 24 小時),還可以用於表示經過的時間或兩個事件之間的時間間隔(可能遠大於 24 小時,甚至為負數)。
MySQL 辨識幾種格式的 TIME
值,其中一些格式可以包含尾隨的小數秒部分,精確度可達微秒(6 位數)。請參閱 第 11.1.3 節,「日期和時間常值」。關於 MySQL 中小數秒的支援資訊,請參閱 第 13.2.6 節,「時間值中的小數秒」。特別是,插入到 TIME
欄位的任何值中的小數部分都會被儲存,而不是捨棄。包含小數部分時,TIME
值的範圍為 '-838:59:59.000000'
到 '838:59:59.000000'
。
請謹慎將縮寫值指派給 TIME
欄位。MySQL 將帶有冒號的縮寫 TIME
值解讀為一天中的時間。也就是說,'11:12'
表示 '11:12:00'
,而不是 '00:11:12'
。MySQL 使用最右邊兩位數代表秒的假設,來解讀不帶冒號的縮寫值(也就是說,將其視為經過的時間,而不是一天中的時間)。例如,您可能會認為 '1112'
和 1112
表示 '11:12:00'
(11 點後 12 分鐘),但 MySQL 將其解讀為 '00:11:12'
(11 分鐘,12 秒)。同樣地,'12'
和 12
解讀為 '00:00:12'
。
時間部分和小數秒部分之間唯一可辨識的分隔符號是小數點。
依預設,超出 TIME
範圍但其他方面有效的值會被截斷到該範圍最接近的端點。例如,'-850:00:00'
和 '850:00:00'
會被轉換為 '-838:59:59'
和 '838:59:59'
。無效的 TIME
值會被轉換為 '00:00:00'
。請注意,由於 '00:00:00'
本身是一個有效的 TIME
值,因此無法從資料表中儲存的 '00:00:00'
值判斷原始值是指定為 '00:00:00'
,還是無效的。
為了更嚴格地處理無效的 TIME
值,請啟用嚴格的 SQL 模式,以導致發生錯誤。請參閱 第 7.1.11 節,「伺服器 SQL 模式」。