Добавление метки времени в таблицу базы данных - PullRequest
1 голос
/ 20 марта 2012

У меня есть html / php форма, которая обновляет записи на сервере базы данных.Мне нужно добавить поле в каждой строке, указывающее, когда эта запись добавляется, другими словами, временная метка, когда запись была создана.Я искал и нашел это:

http://www.createafreewebsite.net/phpmysql/alter.html

Буду ли я сделать что-то вроде:

$timestamp = time();
mysql_query("ALTER TABLE notification
ADD timestamp CHAR(30) AFTER names);

mysql_query("INSERT INTO notification (`timestamp`) values ('$timestamp');

это правильный способ приблизиться к нему, и яиспользуя правильный тип данных?Мне нужно сравнить метку времени с другой меткой времени, сгенерированной из файла javascript позже.Например, если timestamp1 меньше, чем timestamp2, чем выполнять следующие функции ...

Любая информация будет полезна, спасибо!

РЕДАКТИРОВАТЬ:

Предоставлена ​​информация по запросу:

Пока у меня есть:

mysql_query("INSERT INTO notification (`program`, `month`, `day`, `year`, `sponsor`, `type`, `category`, `range`, `desc`) values ('$pName' ,  '$month' , '$day' , '$year' , '$sponsor' , '$type' , '$category' , '$range' , '$desc')");

Ответы [ 3 ]

4 голосов
/ 20 марта 2012

time() в PHP создаст временную метку, ваша таблица MySQL может ожидать другого формата, поэтому вы можете просто сделать:

mysql_query("INSERT INTO notification (`timestamp`) values (NOW());

, и она будет работать также с полями даты и даты и времени.

Даже если ваша таблица CHAR (30), у вас все равно есть на одну переменную меньше.

Если вы измените тип данных столбца на TIMESTAMP, вы можете использовать on update CURRENT_TIMESTAMP для заполненияячейка стола для вас.

1 голос
/ 20 марта 2012

Вы определенно не хотите использовать столбец с типом данных CHAR или VARCHAR для хранения даты или метки времени - это может впоследствии затруднить сравнение. Кроме того, вам следует рассмотреть возможность установки значения по умолчанию для столбца timestamp, чтобы он автоматически заполнялся при вставке строки, или с помощью триггера вставки в таблицу notification для заполнения. Таким образом, вероятность ошибки разработчика уменьшается.

CREATE TRIGGER notification_timestamp BEFORE INSERT
    ON notification FOR EACH ROW
BEGIN
    SET new.timestamp = NOW();
END;

Извинения, если синтаксис не совсем правильный.

1 голос
/ 20 марта 2012
Метка времени

должна иметь тип данных метки времени.http://dev.mysql.com/doc/refman/5.0/en/datetime.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...