2010-08-17 64 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