2012-09-27 79 views
1

MySQL的NOOB有問題......MySQL的功能格式化時間在SQL查詢爲MM:SS

我叫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... 

非常感謝。

回答

2

使用

i for minutes 
s for seconds 

like-- 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 
+1

張貼OP將如何實現這個他們的查詢將會非常有幫助。 :) – Taryn

+0

@bluefeet我想在我的編輯中做同樣的事情,但發現大多數人已經發布代碼之前我即將發佈此編輯的代碼:) – swapnesh

+0

可以理解,但你是第一次發佈如此擴大您的答案會好。 – Taryn

2

可以prehaps使用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.. 
+0

非常感謝。然而...我如何讓列頭保持TotalTime並不顯示爲DATE_FORMAT(TotalTime,「%H:%i」) – chris

+0

使用「作爲TotalTime」 – 2012-09-27 12:41:33

0

檢查date_format功能。

你可以這樣做:

SELECT 
    OverallRank, 
    First, 
    Last, 
    DATE_FORMAT(TotalTime, '%i:%s'), 
    AgeGroup... 
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..