Настройка часового пояса по умолчанию на MySql Server через PhPMyAdmin - PullRequest
11 голосов
/ 21 марта 2011

У меня есть экземпляр mySql для общего хостинга, в котором для system_time_zone задано тихоокеанское стандартное время, а для переменной time_zone установлено значение System, следовательно, он фактически работает по тихоокеанскому стандартному времени.

т.е. я выполнил следующую командучтобы узнать это:

SELECT version( ) , @@time_zone , @@system_time_zone , NOW( ) , UTC_TIMESTAMP( )

Я бы хотел изменить часовой пояс по умолчанию для базы данных mySql / локальной базы данных mySql DB на время GMT / UTC.Я попытался запустить, SET time_zone = '+0:00', и это успешно выполняется!

Однако это не влияет на переменную time_zone, когда я проверяю состояние @@ time_zone.Я посмотрел другой пост, посвященный аналогичной проблеме Как настроить MySQL для использования GMT в Windows и Linux , а также проверил документацию MySql , с небольшим прогрессом.Поскольку я использую решение для совместного хостинга, у меня ограниченный доступ, и у меня нет доступа к большему, чем есть в моей функции PhPMyAdmin mySql.

Интересно, есть ли способ изменить зону default_time из SQL-запроса или мне нужно вернуться к командной строке (к которой у меня нет доступа, к сожалению).

Спасибо за вашу помощь и советы,

Мартин

Ответы [ 3 ]

7 голосов
/ 01 октября 2012

Короче говоря, MySQL фактически хранит поля типа данных datetime внутри как UTC.

However, PhpMyAdmin показывает вам даты, используя время сервера по умолчанию, отсюда ваше замешательство.

Например, попробуйте добавить эту строку перед оператором SQL в PhpMyAdmin:

SET @@session.time_zone='+00:00';
SELECT * FROM MY_TABLE

Подробнее см. Документацию MySQL или ответ в этом посте: Как правильно установить часовой пояс mysql

Приветствие Matt

1 голос
/ 28 марта 2011

Для виртуального хостинга, вы должны попросить тех, кто вам помогает, и изменить часовой пояс по умолчанию для вас?У меня была похожая проблема с хостинг-провайдером Arcor, позвонили им, и они ее исправилиДо этого я нашел временное решение в date_default_timezone_set() из кода PHP.Вероятно, лучшее решение - попросить кого-то, у кого есть привилегия, изменить этот параметр.

0 голосов
/ 03 июля 2013
<?php
date_default_timezone_set('UTC'); //define local time

$date=date('l jS \of F Y h:i:s A'); //type of time shown

$conn=mysql_connect("localhost","root","") or die('Could not connect!'); //your database connection here

$db_selected = mysql_select_db('databasename', $conn); //select db

$result=mysql_query("INSERT INTO table (date) VALUES ('$date')", $conn); 
?>

Просто отправил время как VARCHAR в db, надеюсь, это поможет и извините за синтаксические ошибки (если они есть).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...