2013-05-01 73 views
2

我正在研究一个函数,该函数比较图像的创建日期和修改日期,并使用PHP + MySQL返回每个案例的状态。然而,我意识到,我试图比较的数据最终都使用MySQL中的CURRENT_TIMESTAMP,所以无论何时更新它们最终都会有相同的日期。PHP/SQL创建日期与修改日期

有没有办法只保存数据插入数据库的第一个日期(创建日期),所以它不会根据修改日期更改?

任何帮助表示赞赏,在此先感谢!

UPDATE:

我的时间戳列是使用 “DEFAULT CURRENT_TIMESTAMP”,而不是 “ON UPDATE CURRENT_TIMESTAMP” 选项进行配置。任何其他的工作?

UPDATE2:

请参阅下面我的表定义。

CREATE TABLE IF NOT EXISTS `images` (
    `id` varchar(50) NOT NULL, 
    `patientid` varchar(8) NOT NULL, 
    `caseid` varchar(25) NOT NULL, 
    `image_name` varchar(256) NOT NULL, 
    `status` int(1) unsigned NOT NULL, 
    `comments` varchar(4000) DEFAULT NULL, 
    `mod_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
+0

您正在使用哪些DBMS? Postgres的?甲骨文? – 2013-05-01 14:31:38

+0

@a_horse_with_no_name mySQL – alchuang 2013-05-01 14:58:00

回答

1

好像你的时间戳列是使用“ON UPDATE CURRENT_TIMESTAMP”选项,它会自动更新它们进行配置。

由于看起来没有办法在列上进行更改,所以您必须创建一个没有该选项的新列。

有关详细信息,请参阅TIMESTAMP手册timestamp-initialization

+0

我认为我的时间戳列是使用“DEFAULT CURRENT_TIMESTAMP”而不是“ON UPDATE CURRENT_TIMESTAMP”选项配置的。任何其他的工作? – alchuang 2013-05-01 18:02:36

+0

Coulsd你请张贴你的餐桌定义? – 2013-05-02 05:45:43

+0

我在我的问题中添加了表定义, mod_date' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP – alchuang 2013-05-02 13:22:31