2015-09-10 41 views
1
SELECT (from_time user_offset) as start FROM `availabilities`; 

我正在尝试将当前登录用户的时区偏移量添加到我提取的时间列值中。MySQL获取特定偏移量的时间

FROM_TIME的价值会像偏移02:30:00 和值会喜欢+02:00

有谁知道什么是对同一个适当的做法。

UPDATE:

我尝试以下方法:

SELECT id, TIME_FORMAT((
TIME_FORMAT(from_time, '%H:%i') + '05:30') , '%H:%i' 
) AS 
START 
FROM `availabilities`; 

我得到了00:00,但该值应该是02:00,作为FROM_TIME的价值20:30

我甚至尝试

SELECT 
id, 
CONVERT_TZ(
    from_time, 
    '+00:00', 
    '+05:30' 
) AS `start` 
FROM availabilities 

But it works only if **from_time field has both date and time, for time it returns null** 
+0

什么是你的数据类型 – Drew

+0

@Drew列类型是时间 –

回答

1

转换时区不仅仅是增加+/- X小时。 如果你想得到正确的结果,它肯定应该是更复杂的事情。

我相信这样的财产以后可能有助于

SELECT 
id, 
SUBSTRING(CONVERT_TZ(
    CONCAT('2000-01-01 ', from_time), 
    time_format(TIMEDIFF(NOW(), UTC_TIMESTAMP), '+%H:%i'), 
    user_offset 
), 12, 5) AS `start` 
FROM availabilities 
+0

这工作就像一个魅力 –