有没有办法在运行查询本身时从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。
请帮助,或者如果有任何我可以关注的链接,也会很棒。 谢谢,
答案 0 :(得分:7)
使用FROM_UNIXTIME将UNIX时间戳转换为MySQL DATETIME:
FROM_UNIXTIME(r.unixtime)
然后您可以使用CONVERT_TZ在不同的时区获取DATETIME:
CONVERT_TZ(FROM_UNIXTIME(r.unixtime), ?, 'GMT')
问题是,您需要知道原始时区是 - 您必须使用正确的时区更新?
...