Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  The TIME Type

13.2.3 时间类型

MySQL 将 TIME 值以 'hh:mm:ss' 格式(或 'hhh:mm:ss' 格式)检索和显示。 TIME 值的范围从 '-838:59:59''838:59:59'。时间部分可能很大,因为 TIME 类型不仅可以用来表示一天中的时间(必须小于24小时),还可以用来表示已过的时间或两个事件之间的时间间隔(可能大于24小时,甚至负数)。

MySQL 可以识别多种 TIME 值格式,其中一些可以包括尾部的微秒(6位)精度 fractional seconds 部分。请参阅 第11.1.3节,“日期和时间字面值”。关于 MySQL 中的 fractional seconds 支持,请参阅 第13.2.6节,“时间值中的分秒”。特别是,插入 TIME 列的值时,fractional part 将被存储,而不是丢弃。包括fractional part,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'(12分钟后11点),但 MySQL 解释它们为 '00:11:12'(11分钟,12秒)。类似地,'12'12 将被解释为 '00:00:12'

唯一被识别的时间部分和fractional seconds 部分之间的分隔符是小数点。

默认情况下,超出 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 模式”