1

MySQL NOOB 有问题...

我的数据库中有一个名为 TotalTime 的列,它存储经过的时间 (hh:mm:ss)。在表中,它存储为 type = time。

当它显示时,它显示 hh:mm:ss。因此,3:55 显示为 00:03:55。

在我的 SQL 查询中,有没有办法格式化显示 03:55(或者更好的是 3:55)?

查询的开头如下所示:

SELECT
    OverallRank,
    First,
    Last,
    TotalTime,
    AgeGroup...

非常感谢。

4

4 回答 4

2

采用

i for minutes
s for seconds 

像 - i:s

%i  Minutes, numeric (00..59)
%s  Seconds (00..59)

编辑

SELECT OverallRank, First, Last, DATE_FORMAT(TotalTime, "%i:%s") as TotalTime,...
FROM tbl_name
于 2012-09-27T11:58:18.353 回答
2

您可以预先使用 DATE_FORMAT()? http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

SELECT OverallRank, First, Last, DATE_FORMAT(TotalTime, "%i:%s") as TotalTime, AgeGroup..
于 2012-09-27T11:59:29.747 回答
0

检查date_format函数。

您可以执行以下操作:

SELECT
    OverallRank,
    First,
    Last,
    DATE_FORMAT(TotalTime, '%i:%s'),
    AgeGroup...
于 2012-09-27T12:02:30.550 回答
0

如果你想获得你的3:55输出而不是03:55你也可以使用IF构造:

SELECT OverallRank, 
       First, 
       Last, 
       IF (LEFT(DATE_FORMAT(TotalTime, "%i:%s"),1) == '0',     #IF
                SUBSTRING(DATE_FORMAT(TotalTime, "%i:%s"),2) , #yes part
                DATE_FORMAT(TotalTime, "%i:%s")) as TotalTime, #no part
       AgeGroup..
于 2012-09-27T12:16:29.293 回答