将时间戳添加到数据库表

时间:2012-03-20 13:30:02

标签: php javascript mysql sql

我有一个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 个答案:

答案 0 :(得分:4)

PHP中的

time()将产生一个时间戳,你的MySQL表可能会有另一种格式,所以你可以这样做:

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

它也适用于日期和日期时间字段。

即使你的表是CHAR(30),你仍然可以使用一个较少的变量。

如果您将列数据类型更改为TIMESTAMP,那么您可以使用on update CURRENT_TIMESTAMP为您填充表格单元格。

答案 1 :(得分:1)

timestamp应该有timestamp数据类型。 http://dev.mysql.com/doc/refman/5.0/en/datetime.html

答案 2 :(得分:1)

您绝对不希望使用具有CHAR或VARCHAR数据类型的列来存储日期或时间戳 - 以后可能会使比较变得困难。此外,您应该考虑在timestamp列上放置一个默认值,以便在插入行时自动填充它,或者使用notification表上的插入触发器来填充。这样就减少了开发人员错误的可能性。

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

如果语法不正确,请道歉。