2010-08-17 95 views
1

有沒有辦法在運行查詢本身時從mysql的unix時間戳轉換爲GMT? 我的查詢如下:mysql查詢時區轉換

SELECT 
    r.name 
    , r.network 
    , r.namestring 
    , i.name 
, i.description 
    , r.rid 
    , i.id 
    , d.unixtime     // this is the unix time i am asking to print 
    , d.ifInOctets 
FROM range AS r 
INNER JOIN intranet AS i 
ON r.rid = i.rid 
INNER JOIN 1279080000_1_60 AS d 
ON i.id = d.id 
AND unixtime BETWEEN 1279113600 AND 1279115400 // range of unix time 
WHERE r.network = "ITPN" 
AND i.status = "active" 
GROUP BY i.id AND d.unixtime 

我與它的工作在JDBC,並試圖在這個論壇做轉換提出很多方法,但它似乎並沒有幫助。

我可以直接轉換它並在運行查詢本身時打印出來嗎? 我想以小時顯示日期:分鐘。例如:9:20。

請幫忙,或者如果有任何我可以遵循的鏈接,那也會很棒。 謝謝

回答

7

使用FROM_UNIXTIME一個UNIX時間戳轉換爲MySQL的DATETIME:

FROM_UNIXTIME(r.unixtime) 

然後你可以使用CONVERT_TZ得到DATETIME在不同的時區:

CONVERT_TZ(FROM_UNIXTIME(r.unixtime), ?, 'GMT') 

問題是,你需要知道原來的時區是 - 你必須更新?與正確的時區...

+0

嗨, from_unixtime就像一個魅力。但是有可能在幾小時和幾分鐘內完成,而不是整個日期,小時,分鐘,秒? 非常感謝:) – JJunior 2010-08-17 13:19:57

+0

@jillika iyer:查看更新 - 我給出的示例將返回h24:mm – 2010-08-17 16:04:42

+0

中的值,該值無效。然後,我將'空'作爲字段內容。 :( – JJunior 2010-08-17 17:05:09