我的应用程序在appfog(AWS亚洲)上。我想更改默认时区以在使用DEFAULT_TIMESTAMP时获得正确的时间。我试过了
SET GLOBAL time_zone = "Asia/Calcutta";
但它给出了错误
#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
在 AppFog 基础架构中,许多时区中的许多用户都共享同一个数据库引擎。因此,不允许单个用户更改给定服务器上运行的所有不同数据库的全局时区设置。
但是,如果您阅读 http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html,您将看到可以更改与SET time_zone = <timezone>
的给定连接的时区,因此,如果您将mysql语句包装在其中,您将有更少的时区转换逻辑要做。
将所有
内容保存在 UTC/GMT 时间,然后在显示时间时添加时区差异不是更好吗?
这样,即使在移动到其他服务时服务器时区发生一些变化,您的时间数据也将保持正确。