2015-06-26 16 views
0

如何將第二個轉換爲mysql中的格式化日期時間?我有一個查詢來獲得第二個日期差異。即MySQL第二個格式化日期時間

SELECT TIMESTAMPDIFF(SECOND, '2012-06-03 13:13:55', '2012-06-06 15:20:18') sec 

現在我需要這種轉換秒日期時間SQL。可能嗎?或者有在mysql中獲得DATETIME任何功能領域與格式化選項的區別就像

SELECT DATEDIFF('%m %D, %Y %H...', '2012-06-03 13:13:55', '2012-06-06 15:20:18') sec 

所以我的預期結果爲:1 mon 5 day 13 hour 3 sec

+0

的期望是什麼結果呢? –

+1

請添加一些信息,說明您希望最終結果的外觀如何,因爲您的問題並不清楚。 PS編輯的問題,不要將它添加爲評論 – RiggsFolly

+0

請看我的編輯 –

回答

0

我想你想這一點。這裏默認日期指定'2008-01-02'。

SELECT DATE_ADD('2008-01-02', INTERVAL TIMESTAMPDIFF(SECOND, '2012-06-03 13:13:55', '2012-06-06 15:20:18') SECOND); 
1

這似乎是工作

SELECT 
TIMESTAMPDIFF(SECOND, '2012-06-03 13:13:55', '2012-06-06 15:20:18') secs, 
TIMESTAMPDIFF(MINUTE, '2012-06-03 13:13:55', '2012-06-06 15:20:18') mins, 
TIMESTAMPDIFF(HOUR, '2012-06-03 13:13:55', '2012-06-06 15:20:18') hours, 
TIMESTAMPDIFF(DAY, '2012-06-03 13:13:55', '2012-06-06 15:20:18') days, 
TIMESTAMPDIFF(MONTH, '2012-06-03 13:13:55', '2012-06-06 15:20:18') months, 
TIMESTAMPDIFF(YEAR, '2012-06-03 13:13:55', '2012-06-06 15:20:18') years 

給出結果行

secs mins hours days months years 
266783 4446 74  3  0  0 

現在你可以做任何你與那些結果喜歡

現在,您可以使用剛剛秒結果列來創建你的輸出使用PHP如下所示: -

<?php 
// of course get this from the result set not a hard coded value 
$secs = 266783; 
$days = date('d', $secs); 

$secs -= $days*24*60*60; 
$hours = date('H', $secs); 

$secs -= $hours*60*60; 
$mins = date('m', $secs); 

$secs -= $mins*60; 
$seconds = date('s', $secs); 

echo sprintf('%d Days %d Hours %d Minutes %d Seconds', $days, $hours, $mins, $seconds); 

這將輸出

4 Days 2 Hours 12 Minutes 23 Seconds 
+0

哦,狗屎。我應該能夠做到這一點。但這不是真正的結果。結果應該如上所述格式化爲'266783'秒@RiggsFolly –

+1

好吧,現在我已經爲你做了所有事情。我想如果你想在SQL中做所有事情,你可以在SQL中做類似的事情。 – RiggsFolly

+0

感謝您的努力,但只是告訴您是否有可能使用SQL獲得結果?,您得到的是PHP –