文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (美国标准纸) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


13.2.3 TIME 类型

MySQL 以 'hh:mm:ss' 格式(或对于较大的小时值以 'hhh:mm:ss' 格式)检索和显示 TIME 值。 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'(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 模式以导致发生错误。 请参见 第 7.1.11 节,“服务器 SQL 模式”