Преобразование строки времени UTC в время Unix - PullRequest
0 голосов
/ 09 августа 2011

В моей базе данных я храню время как значение BIGINT UTC.

В моем дампе SQL тестовых данных я хотел бы видеть время в формате UTC для удобства чтения. Однако функция MySQL unix_timestamp ожидает время в местном часовом поясе, которого я стараюсь избегать.

Я осмотрелся и нашел единственный способ преобразования строки времени UTC в метку времени Unix, используя это выражение:

SELECT unix_timestamp(CONVERT_TZ('2011-08-08 06:00:00','UTC',@@global.time_zone))

Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 09 августа 2011

Если бы вы сохранили его как метку времени вместо bigint, это произошло бы автоматически, просто установив часовой пояс.

Кроме того, я не совсем понимаю, что вы делаете.Вы храните unixtime как правильный столбец bigint?Поэтому я не понимаю, почему вы используете функцию unix_timestamp() - которая преобразует в unixtime, а не из него.

Я думаю, это то, что вам нужно:

SET time_zone = '+0:00';
SELECT FROM_UNIXTIME(col) FROM table;
...