Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql phpMyAdmin-以mm:ss:ms格式存储时间_Mysql_Time_Phpmyadmin - Fatal编程技术网

Mysql phpMyAdmin-以mm:ss:ms格式存储时间

Mysql phpMyAdmin-以mm:ss:ms格式存储时间,mysql,time,phpmyadmin,Mysql,Time,Phpmyadmin,在phpMyAdmin,我想为一场比赛记录一圈时间。格式需要是mm:ss:ms格式 如何在数据库中存储此值?是否有一种数据类型允许它?我尝试了time、timestamp和datetime,但它们都没有用毫秒来存储值 如果不可能,我是否可以将其存储为int或varchar,然后在select查询中将其转换为mm:ss:ms格式以用于输出显示 示例输出: 1:35.547 这就是: 1 minute, 35 secs, 547 milliseconds 有什么想法吗 MySQL 5.6.4及更

在phpMyAdmin,我想为一场比赛记录一圈时间。格式需要是mm:ss:ms格式

如何在数据库中存储此值?是否有一种数据类型允许它?我尝试了time、timestamp和datetime,但它们都没有用毫秒来存储值

如果不可能,我是否可以将其存储为int或varchar,然后在select查询中将其转换为mm:ss:ms格式以用于输出显示

示例输出:

1:35.547
这就是:

1 minute, 35 secs, 547 milliseconds
有什么想法吗

MySQL 5.6.4及更高版本扩展了对
时间
日期时间
时间戳
值的分数秒支持,精度高达微秒(6位)

在早期版本中,您必须手动实现该功能。我能想到的最简单的选择是将毫秒存储在单独的
SMALLINT
列中,然后:

SELECT CONCAT(
    TIME_FORMAT(time_col, '%i minutes, %s seconds, '),
    milliseconds_col,
    ' milliseconds'
) FROM ...

或者,您可以将时间存储为
十进制(10,3)
。不幸的是,这两种方法都需要繁琐的手动转换。

这还不够,但我认为它尽可能接近,而不必求助于普通的varchar。我知道在SQL中这是可行的,只是我不得不使用phpMyAdmin,这让我很恼火……您可以使用显示转换将分数时间格式显示为更易于阅读的格式。从该表的结构选项卡中,单击时间戳(etc)列的“更改”,然后从“浏览器显示转换”下拉列表中选择“文本/普通:日期格式”。