Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 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 位数字)。请参阅 第 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'(12 分钟后 11 点),但 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 模式”