0
在我的数据库中,我将时间存储为BIGINT UTC值。将UTC时间字符串转换为Unix时间
在我的测试数据SQL转储为了便于阅读,我希望看到UTC的时间。但是,MySQL unix_timestamp函数需要在本地时区中的时间,我试图避免。
我环顾四周,我发现了UTC时间字符串转换为UNIX时间戳的唯一方法是使用这个表达式:
SELECT unix_timestamp(CONVERT_TZ('2011-08-08 06:00:00','UTC',@@global.time_zone))
有没有更好的方式来做到这一点?
我的数据来自于与unix时间戳和熄灭作为Unix的时间戳是很有意义将其存储为一个BIGINT。我使用unix_timestamp的原因是,我可以读取进入数据库的日期。否则,我的测试数据会被我无法轻易读取的unix时间戳所散布。 – Frederik
不,它不。将它作为时间戳存储是有意义的。 unix_timestamp将* TO *转换为一个unix时间(一个数字)。你的意思是'from_unixtime()'?因为你所要做的就是将当前的时区设置为utc,它将会正常工作。此外,时间戳自动转换为人类可读的日期。 (您选择+0将它们转换为数字。) – Ariel
但是,我们现在将它们存储为数字,这不会改变。然而,在我的测试代码中,我想将它们看作UTC日期/时间字符串。你有什么想法如何做这种转换(没有在数据库中设置UTC - 我没有任何控制权) – Frederik