MySQL, как хранить метку времени

0

Я использую MySQL 5.7.20, Ubuntu 16.04.

Мои запросы:

mysql> CREATE TABLE test (ts TIMESTAMP NULL);

mysql> INSERT INTO test VALUES (1513776043);

mysql> SELECT * FROM test;
+---------------------+
| ts                  |
+---------------------+
| 0000-00-00 00:00:00 |
+---------------------+

Как вы видите, временная метка не сохраняется. Как сохранить timestamp в MySQL?

Теги:
timestamp

1 ответ

2
Лучший ответ

Вам нужно будет преобразовать его с помощью from_unixtime(), поскольку это временная метка unix.

INSERT INTO test VALUES (FROM_UNIXTIME(1513776043));
  • 0
    Функция from_unixtime зависит от часового пояса вашего сервера, а метка времени не зависит от него. Например: set time_zone = '+00: 00'; выберите FROM_UNIXTIME (1513776043); возвращает 2017-12-20 13:20:43, установите time_zone = '+03: 00'; возвращается: 2017-12-20 16:20:43
  • 0
    Хорошо, я понял. MySQL сохраняет поле метки времени как целое число и select UNIX_TIMESTAMP(ts) from test не зависящего от часового пояса

Ещё вопросы

Сообщество Overcoder
Наверх
Меню