### 11.2.3 时间类型

[](<>)[](<>)

MySQL 检索并显示`时间`中的值*`'hh:mm:ss'`*格式（或*`'hhh:mm:ss'`*大小时值的格式）。`时间`值的范围可以从`'-838:59:59'`到`'838:59:59'`.小时部分可能很大，因为`时间`type 不仅可以用来表示一天中的某个时间（必须小于 24 小时），还可以用来表示经过的时间或两个事件之间的时间间隔（可能远大于 24 小时，甚至是负数）。

MySQL 识别`时间`几种格式的值，其中一些可以包括以微秒（6 位）精度为单位的尾随小数秒部分。看[第 9.1.3 节，“日期和时间文字”](date-and-time-literals.html).有关 MySQL 中小数秒支持的信息，请参阅[第 11.2.6 节，“时间值中的小数秒”](fractional-seconds.html).特别是，插入到`时间`列被存储而不是被丢弃。包括小数部分，范围为`时间`值是`'-838:59:59.000000'`到`'838:59:59.000000'`.

为 a 分配缩写值时要小心`时间`柱子。MySQL解释缩写`时间`带有冒号的值作为一天中的时间。那是，`'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'`.

在时间部分和小数秒部分之间识别的唯一分隔符是小数点。

默认情况下，位于`时间`范围但在其他方面有效的被剪裁到范围的最近端点。例如，`'-850:00:00'`和`'850:00:00'`被转换为`'-838:59:59'`和`'838:59:59'`.无效的`时间`值被转换为`'00:00:00'`.请注意，因为`'00:00:00'`本身就是一个有效的`时间`价值，没有办法告诉，从价值`'00:00:00'`存储在表中，是否将原始值指定为`'00:00:00'`或者它是否无效。

对无效的更严格的治疗`时间`值，启用严格的 SQL 模式以导致错误发生。看[第 5.1.11 节，“服务器 SQL 模式”](sql-mode.html).
