我试图在对数据库字段进行date_add之后获取unix_timestamp,但是它仍然给我原始值的unix_timestamp,而不是在date_add之后。
这是我的查询。
SELECT data1.speed,UNIX_TIMESTAMP(Date_Add(data1.dateTimer , Interval '+08:00' hour_minute)) as dateTimer
例如,dateTimer值为2015-10-02 23:27:53之后,dateTimer值为2015-10-02 15:27:53,但是unix_timestamp给我1443799673,它引用了2015-10-02 15:27:53。我什至尝试过CONVERT_TZ函数。
我的答案涵盖了您所描述的情况受到错误影响的情况。
您有两种选择:
解析时区信息。确保它始终采用相同的格式。对于上述情况(+08:00
),您可以使用($tz[0] == '+' ? 1 : (-1)) * (3600 * substr($tz, 1, 2) + 60 * substr($tz, 3, 2))
。这$tz
是您的时区信息。
将此秒数添加到数据时间戳中。
使用DateTime
docs解析时间戳。当给定格式的字符串时,可以完成此操作2015-10-03 19:52:06
。将时区设置为您当前的时区(docs)。然后,使用用户时区修改时区(使用setTimezone)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句