Время по умолчанию в поле mysql

Из php в запросе на запись, передаю значение time() времени...

Что за тип для поля необходимо использовать, в которое заносим содержимое time()/php? Возможно ли по умолчанию для поля, при добавлении строки, чтобы по умолчанию прописывалось временная метка, время добавления записи?


Ответы (1 шт):

Автор решения: CrazyElf

По сути time в php выдаёт timestamp в виде int значения. В MySql так не получится сделать, там timestamp - это дата и время. Но можно при желании преобразовать их в int.

Создание двух полей таблицы типа timestamp, в одно поле будет записано время создания записи в таблице, а в другое время обновления таблицы. Подсмотрено здесь.

CREATE TABLE t1 (
    ts1 TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
   ,ts2 TIMESTAMP DEFAULT NOW()
);

Преобразование в INT значение (отсюда):

SELECT UNIX_TIMESTAMP(ts1) from t1;

Но нужно иметь в виду, что возможны разные приколы с time zone, переводом на летнее/зимнее время и т.д.

По идее, можно и сразу INT поле в таблице сделать, если использовать в качестве значения UNIX_TIMESTAMP(NOW()).

→ Ссылка