top
Loading...
11.3.2.TIME類型
11.3.2. TIME類型

MySQL'HH:MM:SS'格式檢索和顯示TIME(或對于大的小時值采用'HHH:MM:SS'格式)TIME值的范圍可以從'-838:59:59''838:59:59'。小時部分會因此大的原因是TIME類型不僅可以用于表示一天的時間(必須小于24小時),還可能為某個事件過去的時間或兩個事件之間的時間間隔(可以大于24小時,或者甚至為負)

你可以用各種格式指定TIME值:

·         'D HH:MM:SS.fraction'格式的字符串。還可以使用下面任何一種“非嚴格”語法:'HH:MM:SS.fraction''HH:MM:SS''HH:MM''D HH:MM:SS''D HH:MM''D HH''SS'。這里D表示日,可以取034之間的值。請注意MySQL還不保存分數。

·         'HHMMSS'格式的沒有間割符的字符串,假定是有意義的時間。例如,'101112'被理解為'10:11:12',但'109712'是不合法的(它有一個沒有意義的分鐘部分),將變為'00:00:00'

·         HHMMSS格式的數值,假定是有意義的時間。例如,101112被理解為'10:11:12'。下面格式也可以理解:SSMMSSHHMMSSHHMMSS.fraction。請注意MySQL還不保存分數。

·         函數返回的結果,其值適合TIME上下文,例如CURRENT_TIME

對于指定為包括時間部分間割符的字符串的TIME值,如果時、分或者秒值小于10,則不需要指定兩位數。'8:3:2''08:03:02'相同。

TIME列分配簡寫值時應注意。沒有冒號,MySQL解釋值時假定最右邊的兩位表示秒。(MySQL解釋TIME值為過去的時間而不是當天的時間)例如,你可能認為'1112'1112表示'11:12:00'(11點過12),但MySQL將它們解釋為'00:11:12'(11分,12 )。同樣,'12'12 被解釋為 '00:00:12'。相反,TIME值中使用冒號則肯定被看作當天的時間。也就是說,'11:12'表示'11:12:00',而不是'00:11: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'還是不合法的值。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/column-types.html
北斗有巢氏 有巢氏北斗