在mysql中存储精确持续时间的最佳方法

时间:2018-02-10 00:09:15

标签: mysql sql

我经常使用TIME字段来存储第二个准确的持续时间。但是,我如何存储类似的东西:

4小时3分钟,1.1828999秒

我不希望将它存储为浮点数或小数,但是以一种明确的方式将其存储为持续时间。我该怎么做?

1 个答案:

答案 0 :(得分:2)

将其存储为TIME(6),以获得高达六位精度的小数秒。 Time precision是MySQL 5.6中引入的一项功能。

小数秒的存储每列额外花费3个字节。有关详细信息,请参阅https://dev.mysql.com/doc/refman/5.6/en/storage-requirements.html#data-types-storage-reqs-date-time

然后您可以在选择值时格式化它:

mysql> select current_time(6), 
 date_format(current_time(6), '%H hours, %i minutes, %s.%f seconds') as `formatted time`;
+-----------------+-----------------------------------------+
| current_time(6) | formatted time                          |
+-----------------+-----------------------------------------+
| 00:24:53.843700 | 00 hours, 24 minutes, 53.843700 seconds |
+-----------------+-----------------------------------------+

有关其他格式选项,请参阅DATE_FORMAT()