Php 如何更改MYSQL数据库中的时区?
我的Php 如何更改MYSQL数据库中的时区?,php,mysql,Php,Mysql,我的MYSQL数据库中有一个表myTable,其中有一个名为INSERT\u DATE的列,它是datetime类型,默认值为CURRENT\u TIMESTAMP 在生成insert语句时,此列会自动从我的系统中选取当前时间 这在我的本地主机上运行得非常好。但当我把我的网站放在另一个不同时区的服务器上时,它从那个时区选择的时间是错误的。我想将时区设置为GMT+5:30('Asia/Kolkata')。如何在MYSQL中实现这一点 我试图在连接到数据库时更改时区,但它不起作用。下面是我的代码:
MYSQL数据库中有一个表myTable
,其中有一个名为INSERT\u DATE
的列,它是datetime
类型,默认值为CURRENT\u TIMESTAMP
在生成insert语句时,此列会自动从我的系统中选取当前时间
这在我的本地主机上运行得非常好。但当我把我的网站放在另一个不同时区的服务器上时,它从那个时区选择的时间是错误的。我想将时区设置为GMT+5:30('Asia/Kolkata')
。如何在MYSQL中实现这一点
我试图在连接到数据库时更改时区,但它不起作用。下面是我的代码:
function connect_database()
{
$con = mysqli_connect("servername", "username", "password", "dbname");
if (!$con)
{
$con = "";
echo("Database connection failed: " . mysqli_connect_error());
}
mysqli_query($con, "SET SESSION time_zone = 'Asia/Kolkata'");
return $con;
}
在脚本的开头,连接到MySQL之后,执行以下查询:
SET SESSION time_zone = 'Asia/Kolkata';
文件:
如果执行查询时出现错误:
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Kolkata'
这意味着时区数据没有加载到MySQL服务器中。您可以按照本章中给出的说明进行操作,也可以尝试使用数值代替指定时区:
SET SESSION time_zone = "+5:30";
在脚本的开头,连接到MySQL之后,执行以下查询:
SET SESSION time_zone = 'Asia/Kolkata';
文件:
如果执行查询时出现错误:
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Kolkata'
这意味着时区数据没有加载到MySQL服务器中。您可以按照本章中给出的说明进行操作,也可以尝试使用数值代替指定时区:
SET SESSION time_zone = "+5:30";
对于会话范围
set time_zone = "+5:30"
全球范围
set global time_zone = "+5:30"
如果更改全局系统变量,则会记住并删除该值
用于新连接,直到服务器重新启动。(作出全球性的决定)
系统变量设置为永久,应在选项中设置
任何访问该全局文件的客户端都可以看到该更改
变量但是,更改会影响相应的会话
变量仅适用于更改后连接的客户端。全球
变量更改不会影响任何客户端的会话变量
当前已连接的(甚至不是发出
SET全局语句)
对于会话范围
set time_zone = "+5:30"
全球范围
set global time_zone = "+5:30"
如果更改全局系统变量,则会记住并删除该值
用于新连接,直到服务器重新启动。(作出全球性的决定)
系统变量设置为永久,应在选项中设置
任何访问该全局文件的客户端都可以看到该更改
变量但是,更改会影响相应的会话
变量仅适用于更改后连接的客户端。全球
变量更改不会影响任何客户端的会话变量
当前已连接的(甚至不是发出
SET全局语句)
在您的cPanel中将默认时区更改为“亚洲/加尔各答”。@MathsRkBala-我是否需要向主机提供商提交票证才能更改我的cPanel的时区?在您的cPanel中将默认时区更改为“亚洲/加尔各答”。@MathsRkBala-我是否需要向主机提供商提交票证才能更改我的cPanel的时区?我尝试了您的方法解决方案,但它不起作用。我已经更新了我的问题。什么不起作用?你到底得到了什么?我对我的数据库使用了相同的代码,它工作得很好。它仍然选择服务器时区。我建议您在使用
mysqli\u query
执行查询后,更改PHP代码以检查mysql错误:在行的末尾添加或死亡(mysqli\u error($con))
。我把时区放错了。它与“+5:30”一起工作。非常感谢您的帮助:)我尝试了您的解决方案,但不起作用。我已经更新了我的问题。什么不起作用?你到底得到了什么?我对我的数据库使用了相同的代码,它工作得很好。它仍然选择服务器时区。我建议您在使用mysqli\u query
执行查询后,更改PHP代码以检查mysql错误:在行的末尾添加或死亡(mysqli\u error($con))
。我把时区放错了。它与“+5:30”一起工作。非常感谢您的帮助:)