duan5991518 2016-07-11 07:24
浏览 254
已采纳

如何在MYSQL数据库中更改时区?

I have a table myTable in my MYSQL database in which there is a column called INSERT_DATE which is datetime type and having a default value of CURRENT_TIMESTAMP.

While making an insert statement, this column automatically picks the current time from my system.

This is working very well on my localhost. But when I hosted my website to a server placed somewhere else in some different timezone, its picking time from that time zone which is wrong. I want to set timezone to GMT + 5:30 ('Asia/Kolkata'). How can I achieve this in MYSQL?

I am trying to change timezone while connecting to database, but it is not working. Below is my code:

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;
} 
  • 写回答

2条回答 默认 最新

  • douleng3463 2016-07-11 07:28
    关注

    At the beginning of your script, just after connection to MySQL, execute this query:

    SET SESSION time_zone = 'Asia/Kolkata';
    

    Documentation: MySQL Server Time Zone Support

    if you get an error when executing the query:

    ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Kolkata'
    

    then it means the timezone data is not loaded in your MySQL server. You may do so by following the explanations given in the chapter Populating the Time Zone Tables or you may try using numerical values instead of named timezones:

    SET SESSION time_zone = "+5:30";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?