如何查看服务器时区



我想知道MySQL服务器当前设置的时区是什么。我没有我正在使用的计算机的管理员权限,所以我已经通过检查注册表尝试了该方法。

我正在做一个有timestamp列的表,我注意到时间戳与我计算机上的时间戳不同。这有什么原因吗?我如何检查MySQL服务器上的时区?我如何更改它以匹配我的本地/计算机的时间?

您可以使用

为会话设置时区(如果您知道您的偏移量)
    set session time_zone = '+00:00';

和恢复到系统默认值

    set session time_zone 'SYSTEM';
  1. 在SQL timestamp列中,SQL使用会话的当前时间偏移量在存储时间之前自动将时间转换为UTC。它将是机器的时间偏移量,除非您更改它(3)。根据服务器的设置(sql.ini),它可能会也可能不会总是协调回期望的时区。

  2. 要获取当前时区偏移量,请尝试执行

    SELECT @@session.time_zone;
    
  3. 要手动覆盖特定会话其余部分的SQL时区,执行以下命令,用所需的偏移量替换00:00:

    SET @@session.time_zone = "+00:00";
    

查看system_time_zone系统变量

这可能有帮助:

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

你可以通过mysqld_safe选项——timezone=timezone_name来设置MySQL服务器在启动时的系统时区。您也可以通过在启动mysqld之前设置TZ环境变量来设置它。timezone或TZ的允许值取决于系统。请查阅操作系统文档,了解哪些值是可接受的。

您可以使用CONVERT_TZ将给定的时间戳转换为UTC(或任何其他您想要的TZ)

SELECT CONVERT_TZ(NOW(),@@session.time_zone,'GMT');

注意,我使用NOW()作为简单的演示,您将输入想要转换的时间戳。

同样,您可以将本地TZ中的时间戳转换为系统
SELECT CONVERT_TZ($timestamp,'Your Time Zone' @@session.time_zone);

检查您的共享服务器

<?php
  echo date_default_timezone_get();
?>
改变

<?php
    date_default_timezone_set("Africa/Addis_Ababa");
    echo date_default_timezone_get();
?>

相关内容

  • 没有找到相关文章

最新更新