SELECT (from_time user_offset) as start FROM `availabilities`;
我正在尝试将当前登录用户的时区偏移量添加到我正在获取的时间列值中。
from_time 的值将类似于 02:30:00
偏移量的值将像 +02:00
有谁知道什么是合适的方法。
更新:
我尝试了以下方法:
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**
最佳答案
转换时区不仅仅是增加 +/-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
关于MySQL在特定偏移量中获取时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32493326/