Установка зоны времени по умолчанию на сервере MySql через PhPMyAdmin

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

то есть. Я нашел следующую команду, чтобы узнать об этом:

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

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

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

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

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

Martin

Ответ 1

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

Ответ 2

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

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

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

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

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

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

Ответ 3

<?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, надеюсь, что это поможет и извините за синтаксические ошибки (если они есть).