【问题标题】:MySQL getting time in specific offsetMySQL在特定偏移量中获取时间
【发布时间】:2015-09-10 04:45:01
【问题描述】:
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**

【问题讨论】:

  • 你的数据类型是什么
  • @Drew 列类型是时间

标签: mysql timezone-offset convert-tz


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 2021-01-20
    • 1970-01-01
    • 2010-12-04
    • 2018-03-15
    • 2012-10-27
    相关资源
    最近更新 更多