Время по умолчанию в поле 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())
.