#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 | +---------------------+
Комментариев нет:
Отправить комментарий