背景
我们有一个 TIME 数据类型的列来指示耗时。
问题
当我们尝试插入大于 24 的小时数时,例如“25:00:00”,MySQL 会将此值裁剪为“01:00:00”,这不是我们想要的。
尝试的解决方案
文档建议我们可以使用 'HHH:MM:SS' 而不是 'HH:MM:SS' 格式 ( https://dev.mysql.com/doc/refman/5.0/en/time.htm )。这可能会解决我们的问题,但文档没有说明如何做到这一点。
最佳答案
改为使用 INT UNSIGNED
来测量持续时间。例如,如果秒是时间维度的“粒度”,则将秒表示为 INT UNSIGNED
。
原因:
INT
计算更简单!- 我的印象是
TIME
是用来表示一天中的时间,而不是持续时间。 - JDBC 无法理解大于 24 小时的
TIME
值。 - 让
TIME
格式化为HHH
而不是HH
没有记录,我们无法弄清楚。
关于MySql 剪辑 TIME 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31659059/