mysql查询时区转换

时间:2010-08-17 03:46:52

标签: sql database mysql jdbc

有没有办法在运行查询本身时从mysql中的unix时间戳转换为GMT? 我的查询如下:

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。

请帮助,或者如果有任何我可以关注的链接,也会很棒。 谢谢,

1 个答案:

答案 0 :(得分:7)

使用FROM_UNIXTIME将UNIX时间戳转换为MySQL DATETIME:

FROM_UNIXTIME(r.unixtime)

然后您可以使用CONVERT_TZ在不同的时区获取DATETIME:

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

问题是,您需要知道原始时区是 - 您必须使用正确的时区更新? ...