Страницы

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

воскресенье, 15 декабря 2019 г.

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

#mysql #sql


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

Почему так происходит?

Перепроверяю, тип действительно timestamp.
    


Ответы

Ответ 1



тип 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 | +---------------------+

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

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