помогите мне понять сейчас () для MySQL текущего времени и его часовых поясов - PullRequest
1 голос
/ 14 сентября 2011

Мне нужна помощь, чтобы понять, как mysql может определить часовой пояс, когда я использую функцию now () (в mysql) при вставке в базу данных mysql. Формат даты и времени: ГГГГ-ММ-ДД 00:00:00. Как вы получаете пользователь, чтобы получить правильное время на их месте?

Имеет ли этот вопрос смысл?

Спасибо за ваше время!

Ответы [ 4 ]

3 голосов
/ 14 сентября 2011

now() всегда относится к времени сервера из его часового пояса.

Если у вас есть часовой пояс и для сервера, и для пользователя,
это можно сделать с помощью функции convert_tz
, например

set @user_time_zone:='+02:00';
set @server_time_zone:='+08:00';

-- server timezone always come first
-- as now() is from server time
SELECT CONVERT_TZ(now(),@server_time_zone, @user_time_zone);
1 голос
/ 14 сентября 2011

Часовой пояс системы контролируется переменной system_time_zone.Вы можете просмотреть текущий часовой пояс системы, используя следующее в приглашении mysql

SELECT @@system_time_zone;

Часовой пояс системы можно изменить, используя --timezone = timezone_name в опции сервера mysql

1 голос
/ 14 сентября 2011

функция now () возвращает системное время, определяет время и местоположение вашего сервера! MySQL не может сделать это для вас, это работа вашей программы !!

1 голос
/ 14 сентября 2011

Ваш формат даты и времени YYYY-MM-DD 00:00:00 не имеет информации о часовом поясе, поэтому не имеет значения, в каком часовом поясе находится пользователь.

NOW() использует системное время.

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