【发布时间】:2012-04-21 12:21:37
【问题描述】:
我需要以分钟/秒为单位存储歌曲持续时间,我需要使用 TIME,但是在编写 INSERT 语句时如何引用某个持续时间?我在表中的数据类型已经是 TIME,我应该只是 STR_TO_DATE 字符串值“4:29”吗?
【问题讨论】:
-
如果可能的话,我强烈建议使用带有总秒数的整数。以后您可能会省去一些麻烦。很好奇要求使用
TIME字段的原因。
我需要以分钟/秒为单位存储歌曲持续时间,我需要使用 TIME,但是在编写 INSERT 语句时如何引用某个持续时间?我在表中的数据类型已经是 TIME,我应该只是 STR_TO_DATE 字符串值“4:29”吗?
【问题讨论】:
TIME 字段的原因。
首先,看看这里:http://dev.mysql.com/doc/refman/5.0/en/time.html
为 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'。
所以,如果你想插入一首持续时间 = 05:55 的歌曲,只需这样写:
insert into songs (duration) values('0555');
【讨论】: