MySQL now()改变时区

Har*_*der 10 php mysql timezone

我正在使用以下INSERT语句:

INSERT INTO messages SET `to` = '".$to."', `from` = '".$this->userid."', `title` = '".$title."', `message` = '".$message."', `created` = NOW()
Run Code Online (Sandbox Code Playgroud)

但是,它使用我的服务器时间(America/Montreal).我想要亚洲时区(亚洲/加尔各答)

这是否可以使用相同的查询?

wes*_*ide 9

您可能希望继续使用CONVERT_TZ()MySQL中的函数.它基于操作系统使用的Olson数据库.

是文档.


Rob*_*bie 8

打开与MySQL的连接后,运行以下查询:

SET time_zone = timezone;
Run Code Online (Sandbox Code Playgroud)

然后,您执行的所有功能将针对该连接运行该时区(即,直到您关闭与数据库的"链接").

如果您拥有相应的权限,则可以"永久"/全局锁定它.Tiemzone字符串是您在问题中的标准字符串.

http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html


Vla*_*ado 8

最好在查询中直接使用 SQL 格式:

..`created` = CONVERT_TZ(NOW(),'SYSTEM','Asia/Calcutta')..
Run Code Online (Sandbox Code Playgroud)