Страницы

Поиск по вопросам

суббота, 27 октября 2018 г.

Тип timestamp отображается как DATETIME

Установил в таблице тестовой тип поля timestamp, и при добавлении туда значения в виде 1421312123 оно отображается как 0000-00-00 00:00:00
Почему так происходит?
Перепроверяю, тип действительно timestamp


Ответ

тип timestamp хранит дату и время (отметку времени):
The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC.

вы же пытаетесь вставить в столбец число (в математическом смысле этого слова).
это число весьма похоже на количество секунд, прошедших с 1970-01-01 00:00:01 по 2015-01-15 11:55:23 (в московском часовом поясе), т.е., на unix-время (unix timestamp)
если так, то нужно преобразовать это число в дату и время с помощью функции from_unixtime. примерно так:
insert into t values (from_unixtime(1421312123));
тогда в столбец с типом timestamp попадёт корректное значение, и эта отметка времени будет корректно отображаться:
select * from t; +---------------------+ | d | +---------------------+ | 2015-01-15 11:55:23 | +---------------------+

Комментариев нет:

Отправить комментарий