Как я могу получитьMysql FROM_UNIXTIME, как UTC
FROM_UNIXTIME
как UTC/GMT в MySQL? Дата возвращается в часовом поясе соединения.
Я не хочу менять часовой пояс соединения.
Как я могу получитьMysql FROM_UNIXTIME, как UTC
FROM_UNIXTIME
как UTC/GMT в MySQL? Дата возвращается в часовом поясе соединения.
Я не хочу менять часовой пояс соединения.
Вы бы лучше настройки часового пояса загодя:
SET time_zone='UTC';
select FROM_UNIXTIME(1277942400);
Причина в том, что преобразования, связанные с местным часовым поясом, могут быть потерями. Существует пример этого в docs here (см четвёртую пункт в разделе UNIX_TIMESTAMP()
, начиная с «Примечание:»)
мое решение было
SELECT CONVERT_TZ(FROM_UNIXTIME(1277942400), @@session.time_zone,'UTC')
если CONVERT_TZ возвращает нуль, убедитесь, что часовой пояс таблице MySQL заполнен:
zypper install mysql-community-server-tools
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Мне нравится безгражданства решения – Erbureth
Какое большое решение :) –
это без гражданства, но терпит неудачу с неоднозначной датами, поскольку conver_ttz не может знать смещение временной зоны временной метки источника. –
Я знаю, что это был дан ответ, но все же я хотел бы внести свой вклад:
Если вы wan't ваш сервер для создания времени часовой пояс UTC с такими функциями, как NOW()
и FROM_UNIXTIME()
и т. д., вы должны установить time_zone
, как @Matt Johnson.
Есть вещи, о которых он не упоминал: SET time_zone = timezone;
устанавливает часовой пояс только для текущего соединения. Используйте SET GLOBAL time_zone = '+00:00'
, если вы хотите, чтобы эти функции возвращали/конвертировали ваши даты в UTC по умолчанию, поэтому вам не нужно было устанавливать часовой пояс каждый раз, когда вы хотите сохранить некоторые даты, основанные на UTC.
Проверьте текущие настройки TIME_ZONE: SELECT @@global.time_zone, @@session.time_zone;
MySQL :: MySQL 5.5 Reference Manual :: 10.6 MySQL Server Time Zone Support
'SET time_zone = '+00: 00'' работал для меня. См. Mārtiņš Radiņš ответ, если вы хотите, чтобы он был сохранен. – lepe