Время по умолчанию в поле mysql
Из php в запросе на запись, передаю значение time() времени...
Что за тип для поля необходимо использовать, в которое заносим содержимое time()/php? Возможно ли по умолчанию для поля, при добавлении строки, чтобы по умолчанию прописывалось временная метка, время добавления записи?
Ответы (1 шт):
По сути 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()).