У меня есть много столбцов временных меток, которые мне нужно использовать со смешанными часовыми поясами. Часовой пояс пользователя установлен на языке, который я использую для интерфейса, поэтому мне нужно, чтобы MySQL возвращал временную метку unix из файла select *. Есть ли способ отключить автоматическое форматирование при извлечении данных из столбцов временных меток MySQL?

3
Kyle 7 Дек 2009 в 22:10

2 ответа

Лучший ответ

YYYY-MM-DD HH:MM:SS - это представление по умолчанию для столбцов с отметками времени в MySQL. Я не верю, что вы можете изменить это на глобальном уровне.

Два варианта:

  1. Вместо выполнения SELECT * выполните SELECT *, UNIX_TIMESTAMP(your_timestamp_column) AS your_timestamp, который добавит к результатам столбец your_timestamp в формате Unix.

  2. Создайте представление (CREATE VIEW) для каждой таблицы, которая делает то же самое, например

    CREATE VIEW your_view AS
      SELECT *, UNIX_TIMESTAMP(your_timestamp_column) AS your_unix_timestamp
      FROM your_table;
    

    Затем вы можете сделать SELECT * FROM your_view; и получить метку времени Unix, ничего не добавляя к своим запросам.

Ссылка: UNIX_TIMESTAMP

4
Jordan Running 7 Дек 2009 в 22:27

Да.

Вы можете заключить файл в функцию UNIX_TIMESTAMP следующим образом:

Выберите UNIX_TIMESTAMP (your_timestamp_column) из your_table;

Для получения дополнительной информации об этой и других функциях данных и времени mysql см .: http: // dev. mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_unix-timestamp

1
weston 7 Дек 2009 в 22:21