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