MySQL DEFAULT CURRENT_TIMESTAMP doesn't work with timezones?
我的本地MySQL服务器有一个奇怪的问题。我有一个表,默认情况下created_at timestamp列设置为CURRENT_TIMESTAMP。我读过的所有内容都表明这应该以UTC格式存储时间,然后将其转换回本地时间进行显示。但是,它不能正常工作。我不确定它是在搞砸显示器还是什么,但当我读出时间戳时,它给了我GMT时间而不是调整我当地的时区。这不会是一个大问题,除了NOW()给我当地时间,所以我无法正确比较它们。我觉得我可能错过了一些愚蠢的东西,但这里发生了什么?
如果重要的话,我在64位Windows 8下运行MySQL 5.5.24(不幸的是)。
编辑:
更多地说,当我手动添加行时,时间戳工作正常;它只是来自我的PHP的行很棘手。我想PHP连接必须由于某种原因覆盖默认时区。
啊,哈! 我的PHP服务器和我的MySQL服务器使用不同的时区。 需要将date.timezone = America / New_York添加到我的php.ini文件中。
你加载了时区数据吗?
http://www.geeksengine.com/article/populate-time-zone-data-for-mysql.html