TIME 类型
MySQL检索并TIME
以'hh:mm:ss'
格式(或'hhh:mm:ss'
大小时数格式)显示值。TIME
值的范围可以从'-838:59:59'
到'838:59:59'
。小时部分可能会很大,因为该TIME
类型不仅可以用来表示一天中的某个时间(必须少于24小时),而且还可以用来表示经过的时间或两个事件之间的时间间隔(可能远大于24小时,甚至是负面的)。
MySQL可识别TIME
多种格式的值,其中某些格式可包含尾随小数秒的部分,精度最高可达微秒(6位)。请参见“日期和时间文字”。有关MySQL 中小数秒支持的信息,请参见“时间值的分数秒”。特别是,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模式以导致发生错误。