MySQL 获取特定偏移量的时间
MySQL getting time in specific offset
SELECT (from_time user_offset) as start FROM `availabilities`;
我正在尝试将当前登录用户的时区偏移量添加到我正在获取的时间列值中。
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**
转换时区不仅仅是增加 +/-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
SELECT (from_time user_offset) as start FROM `availabilities`;
我正在尝试将当前登录用户的时区偏移量添加到我正在获取的时间列值中。
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**
转换时区不仅仅是增加 +/-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